diff options
| author | Adam Soltys <[email protected]> | 2022-11-12 03:32:19 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-11-12 03:32:19 -0800 |
| commit | 9529f831977568a398c39a9ea8cb65b97dae7eec (patch) | |
| tree | 44f1e043fc51753cfd20e0594c23edf538533fdf | |
| parent | 346ed3e679ee39112a4041079ffdd68656c1514a (diff) | |
| download | coinos-server-9529f831977568a398c39a9ea8cb65b97dae7eec.tar.gz coinos-server-9529f831977568a398c39a9ea8cb65b97dae7eec.zip | |
request invoice relationship
| -rw-r--r-- | db/index.js | 6 | ||||
| -rw-r--r-- | routes/invoices.js | 42 | ||||
| -rw-r--r-- | routes/requests.js | 5 |
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" }, { |
