aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--routes/requests.js34
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);
},