diff options
| author | Adam Soltys <[email protected]> | 2023-02-07 22:40:20 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-02-07 22:40:20 -0800 |
| commit | 1aa6e72855409cd249450625cbc695405f7df812 (patch) | |
| tree | 5aeb51f5ac67bf09bfb21bce5b15f1a4317d1620 | |
| parent | e9760064df093e2ee40a4d38be5d90178e755aff (diff) | |
| download | coinos-server-1aa6e72855409cd249450625cbc695405f7df812.tar.gz coinos-server-1aa6e72855409cd249450625cbc695405f7df812.zip | |
requests
| -rw-r--r-- | routes/requests.js | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/routes/requests.js b/routes/requests.js index 93457213..1d9eb7d5 100644 --- a/routes/requests.js +++ b/routes/requests.js @@ -1,17 +1,14 @@ +import { fail } from "$lib/utils"; import { emit } from "$lib/sockets"; import { g, s, db } from "$lib/db"; import { v4 } from "uuid"; export default { async get({ params: { id } }, res) { - try { - let request = await g(`request:${id}`); - request.recipient = await g(`user:${request.recipient_id}`); - res.send({ request }); - } catch (e) { - console.log(e); - res.code(500).send(e.message); - } + let request = await g(`request:${id}`); + if (!request) fail("request not found"); + request.recipient = await g(`user:${request.recipient_id}`); + res.send({ request }); }, async list({ user: { id } }, res) { @@ -21,6 +18,17 @@ export default { let invoices = await db.lRange(`${id}:invoices`, 0, -1); let requests = await db.lRange(`${id}:requests`, 0, -1); + invoices = await Promise.all(invoices.map(id => g(`invoice:${id}`))); + requests = await Promise.all(requests.map(id => g(`request:${id}`))); + + requests = await Promise.all( + requests.map(async r => { + r.requester = await g(`user:${r.requester_id}`); + r.recipient = await g(`user:${r.recipient_id}`); + return r; + }) + ); + res.send({ invoices, requests }); } catch (e) { console.log(e); @@ -29,7 +37,10 @@ export default { }, async create( - { body: { recipient, ...params }, user: { username, profile } }, + { + body: { recipient, ...params }, + user: { id: requester_id, username, profile } + }, res ) { let recipient_id = await g(`user:${recipient}`); @@ -38,11 +49,14 @@ export default { let request = { id, recipient_id, - requester: { username, profile }, + requester_id, ...params }; await s(`request:${id}`, request); + await db.lPush(`${requester_id}:requests`, id); + await db.lPush(`${recipient_id}:requests`, id); + emit(recipient, "request", request); res.send(request); }, |
