now create tracks method works properly

This commit is contained in:
Dzmitry_Tamashevich@epam.com
2020-11-24 15:40:11 +03:00
committed by Daniel Hutzel
parent 3d176237c1
commit 6454019713
3 changed files with 13 additions and 10 deletions

View File

@@ -4,14 +4,22 @@ module.exports = async function () {
const db = await cds.connect.to("db"); // connect to database service
this.on("CREATE", "*", async (req) => {
const selectLastQuery = SELECT.one(req.entity)
.orderBy({ ID: "desc" });
const transaction = await db.tx(req);
let { ID: lastEntityID } = await transaction.run(
SELECT.one(req.entity).columns("ID").orderBy({ ID: "desc" })
);
let { ID: lastEntityID } = await transaction.run(selectLastQuery);
const columns = ["ID", ...Object.keys(req.data)];
const values = [++lastEntityID, ...Object.values(req.data)];
const insertQuery = INSERT.into(req.entity).columns(columns).values(values);
await transaction.run(insertQuery);
const result = await transaction.run(selectLastQuery);
await transaction.run(req.query.columns(columns).values(values));
await transaction.commit();
return result;
});
};