aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/payments.ts7
-rw-r--r--routes/payments.ts7
2 files changed, 10 insertions, 4 deletions
diff --git a/lib/payments.ts b/lib/payments.ts
index 66dafd26..fb394550 100644
--- a/lib/payments.ts
+++ b/lib/payments.ts
@@ -127,7 +127,11 @@ export const debit = async ({
await s(`payment:${hash}`, id);
await s(`payment:${id}`, p);
- await db.lPush(`${aid || uid}:payments`, id);
+ await db
+ .multi()
+ .lPush(`${aid || uid}:payments`, id)
+ .set(`${aid || uid}:payments:last`, p.created)
+ .exec();
l(user.username, "sent", type, amount);
//emit(user.id, "payment", p);
@@ -221,6 +225,7 @@ export const credit = async ({
.set(`payment:${p.id}`, JSON.stringify(p))
.lPush(`${aid || uid}:payments`, p.id)
.incrBy(`${balanceKey}:${aid || uid}`, amount)
+ .set(`${aid || uid}:payments:last`, p.created)
.exec();
if (inv.items?.length) {
diff --git a/routes/payments.ts b/routes/payments.ts
index 5a6eba91..46728578 100644
--- a/routes/payments.ts
+++ b/routes/payments.ts
@@ -96,7 +96,9 @@ export default {
if (limit) limit = parseInt(limit);
offset = parseInt(offset) || 0;
- let payments = (await db.lRange(`${aid || id}:payments`, 0, -1)) || [];
+ const range = start || end ? -1 : limit - 1;
+ let payments = (await db.lRange(`${aid || id}:payments`, 0, range)) || [];
+
payments = (
await Promise.all(
payments.map(async (pid) => {
@@ -115,8 +117,6 @@ export default {
.filter((p) => p)
.sort((a, b) => b.created - a.created);
- const count = payments.length;
-
const fn = (a, b) => ({
...a,
[b.currency]: {
@@ -146,6 +146,7 @@ export default {
const incoming = payments.filter((p: any) => p.amount > 0).reduce(fn, {});
const outgoing = payments.filter((p: any) => p.amount < 0).reduce(fn, {});
+ const { length: count } = payments;
if (limit) payments = payments.slice(offset, offset + limit);
res.send({ payments, count, incoming, outgoing });