aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--index.js2
-rw-r--r--lib/rates.js2
-rw-r--r--routes/users.js18
3 files changed, 14 insertions, 8 deletions
diff --git a/index.js b/index.js
index 0dddc818..6e001025 100644
--- a/index.js
+++ b/index.js
@@ -68,7 +68,7 @@ app.post("/bitcoin/fee", auth, payments.fee);
app.post("/bitcoin/send", auth, payments.send);
app.get("/users", auth, users.list);
-app.get("/lower", users.lower);
+app.get("/fix", auth, users.fix);
app.get("/me", auth, users.me);
app.get("/users/:key", users.get);
app.post("/register", users.create);
diff --git a/lib/rates.js b/lib/rates.js
index 0b2daab2..1d0eedb3 100644
--- a/lib/rates.js
+++ b/lib/rates.js
@@ -43,7 +43,7 @@ export let getRates = async () => {
connect();
let date = 0,
- fx;
+ fx = {};
let rates = await g("rates");
if (rates) ({ date, fx } = rates);
diff --git a/routes/users.js b/routes/users.js
index f4e68d1e..1e4d00cc 100644
--- a/routes/users.js
+++ b/routes/users.js
@@ -442,12 +442,18 @@ export default {
res.send({});
},
- async lower(req, res) {
- for await (let k of db.scanIterator({ MATCH: "user:*" })) {
- let u = await g(k);
- if (u.pin && !u.haspin) {
- u.haspin = true;
- s(k, u);
+ async fix(req, res) {
+ if (!req.user.admin) fail("unauthorized");
+ let uid = await g("user:laughingbean");
+ let payments = await db.lRange(`${uid}:payments`, 0, -1);
+
+ for (let hash of payments) {
+ let payment = await g(`payment:${hash}`);
+ let invoice = await g(`invoice:${hash}`);
+ if (!invoice) continue;
+ if (invoice.amount !== payment.amount) {
+ payment.amount -= payment.tip;
+ s(`payment:${hash}`, payment);
}
}