aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2025-07-18 13:03:29 -0700
committerAdam Soltys <[email protected]>2025-07-18 13:03:29 -0700
commitb3b12c6cfff01160c974cca6545a8998e6e9b3af (patch)
treed4851efe1f6594d03090446b5c511c9e8a21774d
parent3246d72eb1b8c41e2318c4822d653b6b308b6220 (diff)
downloadcoinos-server-b3b12c6cfff01160c974cca6545a8998e6e9b3af.tar.gz
coinos-server-b3b12c6cfff01160c974cca6545a8998e6e9b3af.zip
delete manager
-rw-r--r--index.ts1
-rw-r--r--routes/payments.ts32
2 files changed, 30 insertions, 3 deletions
diff --git a/index.ts b/index.ts
index fa2f9366..b8aaf5dd 100644
--- a/index.ts
+++ b/index.ts
@@ -74,6 +74,7 @@ app.get("/fund/:name", payments.fund);
// app.get("/fund/:name/withdraw", auth, payments.withdraw);
app.get("/fund/:name/managers", payments.managers);
app.post("/fund/managers", auth, payments.addManager);
+app.post("/fund/:name/managers/delete", auth, payments.deleteManager);
app.post("/take", auth, payments.take);
app.post("/print", auth, payments.print);
app.post("/send/:lnaddress/:amount", auth, payments.lnaddress);
diff --git a/routes/payments.ts b/routes/payments.ts
index c6653f1c..0fcd64cd 100644
--- a/routes/payments.ts
+++ b/routes/payments.ts
@@ -326,7 +326,7 @@ export default {
const ids = await db.sMembers(`fund:${name}:managers`);
const managers = await Promise.all(
- ids.map(async (id) => await getUser(id)),
+ ids.map(async (id) => await getUser(id, fields)),
);
res.send(managers);
@@ -345,7 +345,7 @@ export default {
await db.sAdd(k, user.id);
}
- const u = await getUser(username);
+ const u = await getUser(username, fields);
if (!u) fail("User not found");
const { id: uid } = u;
@@ -353,11 +353,37 @@ export default {
const ids = await db.sMembers(k);
if (!managers.length)
- managers = await Promise.all(ids.map(async (id) => await getUser(id)));
+ managers = await Promise.all(
+ ids.map(async (id) => await getUser(id, fields)),
+ );
res.send(managers);
},
+ async deleteManager(req, res) {
+ try {
+ const { name } = req.params;
+ const { id: uid } = req.body;
+ const { user } = req;
+
+ const k = `fund:${name}:managers`;
+ let managers = await db.sMembers(k);
+
+ if (managers.length) {
+ if (!managers.includes(user.id)) fail("Unauthorized");
+ }
+
+ await db.sRem(k, uid);
+
+ const ids = await db.sMembers(k);
+ managers = await Promise.all(
+ ids.map(async (id) => await getUser(id, fields)),
+ );
+
+ res.send(managers);
+ } catch (e) {}
+ },
+
async confirm(req, res) {
const {
body: { txid, wallet, type },