31 lines
793 B
JavaScript
31 lines
793 B
JavaScript
const cds = require("@sap/cds");
|
|
|
|
module.exports = async function () {
|
|
const db = await cds.connect.to("db"); // connect to database service
|
|
|
|
const { Invoices, InvoiceItems } = db.entities;
|
|
|
|
this.on("READ", "MarkedTracks", async (req) => {
|
|
const invoiceItemEntries = await db.run(
|
|
SELECT.from(InvoiceItems)
|
|
.columns("track_ID")
|
|
.where(
|
|
"invoice_ID in",
|
|
SELECT("ID").from(Invoices).where({
|
|
customer_ID: req.user.attr.ID,
|
|
})
|
|
)
|
|
);
|
|
const trackIds = invoiceItemEntries.map(({ track_ID }) => track_ID);
|
|
|
|
const result = [];
|
|
await db.foreach(req.query, (track) => {
|
|
result.push({
|
|
...track,
|
|
alreadyOrdered: trackIds.includes(track.ID),
|
|
});
|
|
});
|
|
return result;
|
|
});
|
|
};
|