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 | |
| parent | a02e15ce9a4b8d8fba9934d8f9bde3959fc423af (diff) | |
| download | coinos-server-04d0ffe157b0b412a673a8de2be4ca8f1fe4eff3.tar.gz coinos-server-04d0ffe157b0b412a673a8de2be4ca8f1fe4eff3.zip | |
items endpoints
Diffstat (limited to 'routes')
| -rw-r--r-- | routes/items.js | 47 | ||||
| -rw-r--r-- | routes/users.js | 5 |
2 files changed, 52 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); + } + }, +}; diff --git a/routes/users.js b/routes/users.js index b30beb54..7598a8a6 100644 --- a/routes/users.js +++ b/routes/users.js @@ -524,4 +524,9 @@ export default { bail(res, e.message); } }, + + async items({ params: { id } }, res) { + let item = await g(`item:${id}`); + return item; + }, }; |
