From f4c51cddc3d6c45fa1de5fd928b1b2a0f95774f8 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 3 Feb 2023 21:25:52 +0000 Subject: delete user endpoint --- routes/users.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'routes/users.js') diff --git a/routes/users.js b/routes/users.js index 10cc358d..4fcc50df 100644 --- a/routes/users.js +++ b/routes/users.js @@ -237,7 +237,8 @@ export default { if (!p.with) continue; let id = await g(`user:${p.with.username}`); - let u = await g(`user:${id}`); + let u = id && await g(`user:${id}`); + if (!u) { u = await got(`${classic}/admin/migrate/${p.with.username}`, { headers: { authorization: `Bearer ${config.admin}` } @@ -372,5 +373,22 @@ export default { await s(`${id}:contacts`, contacts); res.send(contacts); + }, + + async del({ params: { username }, headers: { authorization } }, res) { + if (!(authorization && authorization.includes(config.admin))) + return res.code(401).send("unauthorized"); + + let { id, pubkey } = await g(`user:${await g(`user:${username}`)}`); + let invoices = await db.lRange(`${id}:invoices`, 0, -1); + let payments = await db.lRange(`${id}:payments`, 0, -1); + + for (let { id } of invoices) db.del(`invoice:${id}`); + for (let { id } of payments) db.del(`payment:${id}`); + db.del(`user:${username}`); + db.del(`user:${id}`); + db.del(`user:${pubkey}`); + + res.send({}); } }; -- cgit v1.2.3