diff options
| author | Adam Soltys <[email protected]> | 2024-11-28 09:07:27 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-11-28 09:07:27 -0800 |
| commit | 79c048ccf50705fb786c885baf66f713ae70cf9c (patch) | |
| tree | a1c866b0854c4ad15103087767e6c5024ae5e36c | |
| parent | 07eb7a473181113003dca15eb47c9667eddeac1b (diff) | |
| download | coinos-server-79c048ccf50705fb786c885baf66f713ae70cf9c.tar.gz coinos-server-79c048ccf50705fb786c885baf66f713ae70cf9c.zip | |
set last time for payments
| -rw-r--r-- | lib/payments.ts | 7 | ||||
| -rw-r--r-- | routes/payments.ts | 7 |
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 }); |
