aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2022-08-01 22:17:58 -0700
committerAdam Soltys <[email protected]>2022-08-01 22:18:18 -0700
commit52de78167f0a9a4f28e06c8e4d2883305a6046d5 (patch)
treeb017df9219bc1572426cdcc3bc337897a7f68b4c
parentf88165f8ffd3f3d39e7ca32af4197462924c84b4 (diff)
downloadcoinos-server-52de78167f0a9a4f28e06c8e4d2883305a6046d5.tar.gz
coinos-server-52de78167f0a9a4f28e06c8e4d2883305a6046d5.zip
record invoice status
-rw-r--r--db/models/invoices.js9
-rw-r--r--routes/invoices.js9
-rw-r--r--routes/lightning/receive.js4
3 files changed, 20 insertions, 2 deletions
diff --git a/db/models/invoices.js b/db/models/invoices.js
index 324da9ad..d985ce82 100644
--- a/db/models/invoices.js
+++ b/db/models/invoices.js
@@ -154,6 +154,15 @@ const attributes = {
comment: null,
field: "webhook"
},
+ status: {
+ type: DataTypes.TEXT,
+ allowNull: true,
+ defaultValue: "unpaid",
+ primaryKey: false,
+ autoIncrement: false,
+ comment: null,
+ field: "status"
+ },
tip: {
type: DataTypes.DOUBLE,
allowNull: true,
diff --git a/routes/invoices.js b/routes/invoices.js
index 1208e14e..b5650735 100644
--- a/routes/invoices.js
+++ b/routes/invoices.js
@@ -8,7 +8,12 @@ app.get(
const invoice = await db.Invoice.findOne({
where: {
uuid: req.query.uuid
- }
+ },
+ include: {
+ model: db.User,
+ as: "user",
+ attributes: ['username']
+ }
});
res.send(invoice);
@@ -23,7 +28,7 @@ app.post(
optionalAuth,
ah(async (req, res, next) => {
try {
- let { liquidAddress, invoice, user, tx } = req.body;
+ let { liquidAddress, id, invoice, user, tx } = req.body;
let { blindkey } = invoice;
if (invoice.amount < 0) throw new Error("amount out of range");
diff --git a/routes/lightning/receive.js b/routes/lightning/receive.js
index 89ad4c29..c9e7dec7 100644
--- a/routes/lightning/receive.js
+++ b/routes/lightning/receive.js
@@ -61,6 +61,9 @@ const handlePayment = async (msg) => {
total = amount + tip;
invoice.received += total;
+ invoice.status = 'paid';
+ await invoice.save({ transaction });
+
await account.increment({ balance: total }, { transaction });
// get the # of fee credits you would need to pay off this amount of bitcoin
await account.increment({ lightning_credits: computeConversionFee(total) }, { transaction });
@@ -71,6 +74,7 @@ const handlePayment = async (msg) => {
payment = payment.get({ plain: true });
payment.account = account.get({ plain: true });
+ payment.invoice= invoice.get({ plain: true });
callWebhook(invoice, payment);