diff options
| author | Adam Soltys <[email protected]> | 2023-11-07 11:32:13 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-11-07 11:32:13 -0800 |
| commit | 44765761a41af5afc0af439113f053243a0e3936 (patch) | |
| tree | 8773540f4d646332e0d845b75ba86048fbe9b42f | |
| parent | 66854d5de5da6f8dae3fce506f65bc5f28de1a6e (diff) | |
| download | coinos-server-44765761a41af5afc0af439113f053243a0e3936.tar.gz coinos-server-44765761a41af5afc0af439113f053243a0e3936.zip | |
fix contacts
| -rw-r--r-- | routes/users.js | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/routes/users.js b/routes/users.js index 649c9cc7..747041eb 100644 --- a/routes/users.js +++ b/routes/users.js @@ -183,10 +183,19 @@ export default { try { l("updating user", user.username); - let { confirm, password, pin, newpin, username, shopifyToken, shopifyStore } = body; + let { + confirm, + password, + pin, + newpin, + username, + shopifyToken, + shopifyStore + } = body; if (user.pin && !(pin === user.pin)) throw new Error("Pin required"); - if (typeof newpin !== "undefined" && newpin.length === 6) user.pin = newpin; + if (typeof newpin !== "undefined" && newpin.length === 6) + user.pin = newpin; if (user.pin === "delete") delete user.pin; let exists; @@ -238,7 +247,7 @@ export default { `user:${user.username.toLowerCase().replace(/\s/g, "")}`, user.id ); - + await s(`user:${user.id}`, user); emit(user.id, "user", user); @@ -416,17 +425,19 @@ export default { }, async contacts({ user: { id } }, res) { - let i = (await g(`${id}:cindex`)) || 0; - let payments = (await db.lRange(`${id}:payments`, i, -1)) || []; - await db.incrBy(`${id}:cindex`, payments.length); + let lastlen = (await g(`${id}:lastlen`)) || 0; + let len = await db.lLen(`${id}:payments`); + let payments = (await db.lRange(`${id}:payments`, 0, len - lastlen)) || []; + await db.set(`${id}:lastlen`, len); let contacts = (await g(`${id}:contacts`)) || []; for (let { ref } of ( - await Promise.all(payments.map(async id => await g(`payment:${id}`))) + await Promise.all(payments.reverse().map(async id => await g(`payment:${id}`))) ).filter(p => p.type === types.internal && p.ref)) { - !~contacts.findIndex(({ id }) => id === ref) && - contacts.push(await g(`user:${ref}`)); + if (!~contacts.findIndex(({ id }) => id === ref)) { + contacts.unshift(await g(`user:${ref}`)); + } } await s(`${id}:contacts`, contacts); |
