aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--db/index.js6
-rw-r--r--routes/invoices.js42
-rw-r--r--routes/requests.js5
3 files changed, 37 insertions, 16 deletions
diff --git a/db/index.js b/db/index.js
index 255382f4..0437ece6 100644
--- a/db/index.js
+++ b/db/index.js
@@ -147,6 +147,12 @@ Request.belongsTo(Invoice, {
foreignKey: "invoice_id"
});
+Invoice.hasOne(Request, {
+ as: "request",
+ foreignKey: "invoice_id"
+});
+
+
db.Order = Order;
export default db;
diff --git a/routes/invoices.js b/routes/invoices.js
index fa44f6e6..7fa82afb 100644
--- a/routes/invoices.js
+++ b/routes/invoices.js
@@ -16,11 +16,17 @@ app.get("/invoice", async (req, res, next) => {
where: {
uuid: req.query.uuid
},
- include: {
- model: db.User,
- as: "user",
- attributes: ["username", "currency", "profile"]
- }
+ include: [
+ {
+ model: db.User,
+ as: "user",
+ attributes: ["username", "currency", "profile"]
+ },
+ {
+ model: db.Request,
+ as: "request"
+ }
+ ]
});
res.send(invoice);
@@ -160,7 +166,6 @@ app.post("/invoice", optionalAuth, async (req, res, next) => {
}
if (request_id) {
- console.log("REQ ID", request_id)
let request = await db.Request.findOne({
where: { id: request_id },
@@ -170,17 +175,22 @@ app.post("/invoice", optionalAuth, async (req, res, next) => {
attributes: ["username"]
}
});
- request.invoice_id = invoice.id;
- await request.save();
- emit(request.requester.username, "invoice", {
- amount: invoice.amount,
- currency: invoice.currency,
- rate: invoice.rate,
- request_id,
- uuid: invoice.uuid,
- user: { username: user.username, profile: user.profile }
- });
+ if (request) {
+ let existing = request.invoice_id;
+ request.invoice_id = invoice.id;
+ await request.save();
+
+ if (!existing)
+ emit(request.requester.username, "invoice", {
+ amount: invoice.amount,
+ currency: invoice.currency,
+ rate: invoice.rate,
+ request_id,
+ uuid: invoice.uuid,
+ user: { username: user.username, profile: user.profile }
+ });
+ }
}
res.send(invoice);
diff --git a/routes/requests.js b/routes/requests.js
index affcfda7..0ef997b9 100644
--- a/routes/requests.js
+++ b/routes/requests.js
@@ -12,6 +12,11 @@ app.get("/request/:id", auth, async (req, res) => {
{
attributes: ["username", "profile"],
model: db.User,
+ as: "recipient"
+ },
+ {
+ attributes: ["username", "profile"],
+ model: db.User,
as: "requester"
},
{