diff options
| author | Adam Soltys <[email protected]> | 2019-09-15 23:05:26 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2019-09-15 23:05:26 -0700 |
| commit | 765c6a42135b9334b616c26b22c816edd06e382a (patch) | |
| tree | 05da4f343358fb5e9a9083e348783f0fab973dd8 /payUser.js | |
| parent | 087fdd27f3683a1deb9376b7a72aa608e6fd8e6a (diff) | |
| download | coinos-server-765c6a42135b9334b616c26b22c816edd06e382a.tar.gz coinos-server-765c6a42135b9334b616c26b22c816edd06e382a.zip | |
refactor
Diffstat (limited to 'payUser.js')
| -rw-r--r-- | payUser.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/payUser.js b/payUser.js new file mode 100644 index 00000000..98cc1ac8 --- /dev/null +++ b/payUser.js @@ -0,0 +1,38 @@ +module.exports = db => async (req, res) => { + let { payuser, amount } = req.body; + + let user = await db.User.findOne({ + where: { + username: payuser + } + }); + + if (!user) { + return res + .status(500) + .send("Couldn't find the user you're trying to pay"); + } + let err = m => res.status(500).send(m); + + let invoice; + try { + invoice = await lnb.addInvoice({ value: amount }); + } catch (e) { + return err(e.message); + } + + let hash = invoice.payment_request; + + await db.Payment.create({ + user_id: user.id, + hash, + amount, + currency: "CAD", + rate: app.get("rates").ask, + tip: 0 + }); + + req.url = "/sendPayment"; + req.body.payreq = invoice.payment_request; + return app._router.handle(req, res); + } |
