diff options
| author | Adam Soltys <[email protected]> | 2024-02-20 19:54:07 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-02-20 23:19:31 -0800 |
| commit | 04d0ffe157b0b412a673a8de2be4ca8f1fe4eff3 (patch) | |
| tree | b14a97849d8c011037c1d9f192c50392b0a491e9 /routes/items.js | |
| parent | a02e15ce9a4b8d8fba9934d8f9bde3959fc423af (diff) | |
| download | coinos-server-04d0ffe157b0b412a673a8de2be4ca8f1fe4eff3.tar.gz coinos-server-04d0ffe157b0b412a673a8de2be4ca8f1fe4eff3.zip | |
items endpoints
Diffstat (limited to 'routes/items.js')
| -rw-r--r-- | routes/items.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/routes/items.js b/routes/items.js new file mode 100644 index 00000000..4d831592 --- /dev/null +++ b/routes/items.js @@ -0,0 +1,47 @@ +import { g, s, db } from "$lib/db"; +import { v4 } from "uuid"; +import { bail, fail } from "$lib/utils"; + +export default { + async list({ params: { id } }, res) { + let items = await db.lRange(`${id}:items`, 0, -1); + items = await Promise.all(items.map(async (id) => await g(`item:${id}`))); + res.send(items); + }, + + async get({ params: { id } }, res) { + try { + let item = await g(`item:${id}`); + console.log("ITEM", item); + if (!item) fail("Item not found"); + res.send(item); + } catch (e) { + bail(res, e.message); + } + }, + + async create({ body: item, user: { id } }, res) { + if (!item.id) { + item.id = v4(); + await db.lPush(`${id}:items`, item.id); + } + + await s(`item:${item.id}`, item); + + res.send(item); + }, + + async del({ body: { item }, user: { id } }, res) { + try { + console.log(id); + console.log(item.id); + let n = await db.lRem(`${id}:items`, 0, item.id); + if (n) db.del(`item:${item.id}`); + else fail("item not found"); + + res.send({}); + } catch (e) { + bail(res, e.message); + } + }, +}; |
