From 3d41f8e4ec5dbd668694e64742ba8434975938b8 Mon Sep 17 00:00:00 2001 From: Daniel O'Grady Date: Thu, 15 Sep 2022 16:03:24 +0200 Subject: [PATCH] Slightly adjust JS files for samples to accomodate types --- bookshop/srv/cat-service.js | 3 ++- bookstore/srv/mashup.js | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/bookshop/srv/cat-service.js b/bookshop/srv/cat-service.js index eb314db5..57cfd13c 100644 --- a/bookshop/srv/cat-service.js +++ b/bookshop/srv/cat-service.js @@ -2,7 +2,8 @@ const cds = require('@sap/cds') class CatalogService extends cds.ApplicationService { init(){ - const { Books } = this.entities ('sap.capire.bookshop') + //const { Books } = this.entities ('sap.capire.bookshop') + const { Books, Book } = require('../@types/sap/capire/bookshop') // Reduce stock of ordered books if available stock suffices this.on ('submitOrder', async req => { diff --git a/bookstore/srv/mashup.js b/bookstore/srv/mashup.js index bd8aa0f9..4de701fe 100644 --- a/bookstore/srv/mashup.js +++ b/bookstore/srv/mashup.js @@ -11,7 +11,8 @@ module.exports = async()=>{ // called by server.js const db = await cds.connect.to ('db') // reflect entity definitions used below... - const { Books } = db.entities ('sap.capire.bookshop') + //const { Books } = db.entities ('sap.capire.bookshop') + const { Books, Book } = require('../@types/sap/capire/bookshop') // // Delegate requests to read reviews to the ReviewsService @@ -19,8 +20,8 @@ module.exports = async()=>{ // called by server.js // CatalogService.prepend (srv => srv.on ('READ', 'Books/reviews', (req) => { console.debug ('> delegating request to ReviewsService') - const [id] = req.params, { columns, limit } = req.query.SELECT - return ReviewsService.read ('Reviews',columns).limit(limit).where({subject:String(id)}) + const [id] = req.params, { columns, limit } = 'SELECT' in req.query ? req.query.SELECT : {columns: [], limit: { rows: 0 }} + return ReviewsService.read ('Reviews',columns).limit(limit.rows).where({subject:String(id)}) })) // @@ -28,7 +29,7 @@ module.exports = async()=>{ // called by server.js // CatalogService.on ('OrderedBook', async (msg) => { const { book, quantity, buyer } = msg.data - const { title, price } = await db.tx(msg).read (Books, book, b => { b.title, b.price }) + const { title, price } = await db.tx(msg).read ('Books').where('ID = ' + book.ID).columns((/** @type {Book} */ b) => { b.title, b.price }) return OrdersService.tx(msg).create ('Orders').entries({ OrderNo: 'Order at '+ (new Date).toLocaleString(), Items: [{ product:{ID:`${book}`}, title, price, quantity }],