aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-03-16 08:52:55 -0700
committerAdam Soltys <[email protected]>2023-03-16 08:52:55 -0700
commitd3a35dad2f335a6291f5d656e101956a51bdaa6b (patch)
tree6553552e34ad9ee3288c86d59e42ee5fb5af6ec7
parent36539ce56cea91bf74a97557b127473bd659b924 (diff)
downloadcoinos-server-d3a35dad2f335a6291f5d656e101956a51bdaa6b.tar.gz
coinos-server-d3a35dad2f335a6291f5d656e101956a51bdaa6b.zip
fix balance endpoint
-rw-r--r--index.js1
-rw-r--r--routes/payments.js24
2 files changed, 25 insertions, 0 deletions
diff --git a/index.js b/index.js
index 61c4bde1..04e9187f 100644
--- a/index.js
+++ b/index.js
@@ -60,6 +60,7 @@ app.get("/decode", lnurl.decode);
app.get("/lnurlp/:username", lnurl.lnurlp);
app.get("/lnurl/:id", lnurl.lnurl);
+app.post("/fix", auth, payments.fix);
app.post("/bitcoin", payments.bitcoin);
app.post("/bitcoin/fee", auth, payments.fee);
app.post("/bitcoin/send", auth, payments.send);
diff --git a/routes/payments.js b/routes/payments.js
index 62c5f737..c09fcf93 100644
--- a/routes/payments.js
+++ b/routes/payments.js
@@ -399,5 +399,29 @@ export default {
} catch (e) {
bail(res, e.message);
}
+ },
+
+ async fix({ body: { uid }, user }, res) {
+ try {
+ if (!user.admin) fail("unauthorized");
+
+ let { username } = await g(`user:${uid}`);
+ let balance = await g(`balance:${uid}`);
+
+ let payments = await db.lRange(`${uid}:payments`, 0, -1);
+
+ let total = 0;
+ for (let pid of payments) {
+ let p = await g(`payment:${pid}`);
+ total += p.amount;
+ if (p.amount < 0) total -= ((p.fee || 0) + (p.ourfee || 0));
+ }
+
+ l('corrected balance', username, uid, balance, total);
+ await s(`balance:${uid}`, total);
+ res.send("ok");
+ } catch (e) {
+ bail(res, e.message);
+ }
}
};