aboutsummaryrefslogtreecommitdiffstats
path: root/payUser.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2019-09-15 23:05:26 -0700
committerAdam Soltys <[email protected]>2019-09-15 23:05:26 -0700
commit765c6a42135b9334b616c26b22c816edd06e382a (patch)
tree05da4f343358fb5e9a9083e348783f0fab973dd8 /payUser.js
parent087fdd27f3683a1deb9376b7a72aa608e6fd8e6a (diff)
downloadcoinos-server-765c6a42135b9334b616c26b22c816edd06e382a.tar.gz
coinos-server-765c6a42135b9334b616c26b22c816edd06e382a.zip
refactor
Diffstat (limited to 'payUser.js')
-rw-r--r--payUser.js38
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);
+ }