diff options
| author | Adam Soltys <[email protected]> | 2020-08-09 22:13:47 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2020-08-09 22:13:47 -0700 |
| commit | f89b0ffde25292909bd398430e84e6c693084582 (patch) | |
| tree | 36e418ae2efffc8bcc57d44b0955b43782f8c475 /routes/payments.js | |
| parent | 23fa7f40f1cbc94238f836876a31480a4a23b785 (diff) | |
| download | coinos-server-f89b0ffde25292909bd398430e84e6c693084582.tar.gz coinos-server-f89b0ffde25292909bd398430e84e6c693084582.zip | |
handle receiving to non-custodial account
Diffstat (limited to 'routes/payments.js')
| -rw-r--r-- | routes/payments.js | 61 |
1 files changed, 35 insertions, 26 deletions
diff --git a/routes/payments.js b/routes/payments.js index d88c95a7..c46af90e 100644 --- a/routes/payments.js +++ b/routes/payments.js @@ -5,7 +5,7 @@ const { join } = require("path"); const fs = require("fs"); const read = require("../lib/read"); -(ah(async () => { +ah(async () => { seen = []; addresses = {}; issuances = {}; @@ -25,16 +25,25 @@ const read = require("../lib/read"); }); await db.Invoice.findAll({ - include: [ - { - model: db.User, - as: "user", - }, - ], - }).map((i) => { - if (i.address && i.user) addresses[i.address] = i.user.username; - if (i.unconfidential && i.user) - addresses[i.unconfidential] = i.user.username; + include: { + model: db.User, + as: "user", + }, + }).map(({ address, user, unconfidential }) => { + if (address && user) addresses[address] = user.username; + if (unconfidential && user) addresses[unconfidential] = user.username; + }); + + const accounts = await db.Account.findAll({ + where: { pubkey: { [Op.ne]: null } }, + include: { + model: db.User, + as: "user", + }, + }); + + accounts.map(({ address, user: { username } }) => { + addresses[address] = username; }); payments = ( @@ -141,23 +150,23 @@ const read = require("../lib/read"); "/payment/:redeemcode", ah(async (req, res) => { try { - const { redeemcode } = req.params; - let payment = await db.Payment.findOne({ - where: { - redeemcode, - }, - include: { - model: db.Account, - as: "account", - }, - }); + const { redeemcode } = req.params; + let payment = await db.Payment.findOne({ + where: { + redeemcode, + }, + include: { + model: db.Account, + as: "account", + }, + }); - if (!payment) fail("invalid code"); + if (!payment) fail("invalid code"); - res.send(payment); - } catch(e) { + res.send(payment); + } catch (e) { res.status(500).send(e.message); - } + } }) ); -}))(); +})(); |
