From 86134759888571484695c8bffde906cca6ccc2c7 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 8 Mar 2020 16:16:27 +0100 Subject: [PATCH] beautified impl --- reviews/test/bookshop/server.js | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/reviews/test/bookshop/server.js b/reviews/test/bookshop/server.js index 369af0f1..7d17dbb8 100644 --- a/reviews/test/bookshop/server.js +++ b/reviews/test/bookshop/server.js @@ -1,28 +1,25 @@ const cds = require ('@sap/cds') +// Mashup services after bootstrapping... cds.on('listening', async()=>{ - // connect to requires services - const ReviewsService = await cds.connect.to ('ReviewsService') - const CatalogService = await cds.connect.to ('CatalogService') - const db = await cds.connect.to ('db') - - // import model definitions from connected services to work with subsequently - const { Reviews } = ReviewsService.entities - const { Books } = db.entities - // react on event messages from reviews service + const ReviewsService = await cds.connect.to ('ReviewsService') + const db = await cds.connect.to ('db') ReviewsService.on ('reviewed', (msg) => { console.debug ('> received:', msg.event, msg.data) + const { Books } = db.entities('sap.capire.bookshop') const { subject, rating } = msg.data const tx = db // TODO: db.transaction (msg) - return tx.run (UPDATE (Books, subject) .with ({rating})) - // return tx.update (Books, subject) .with ({rating}) + // return tx.run (UPDATE (Books, subject) .with ({rating})) + return tx.update (Books, subject) .with ({rating}) }) // delegate requests to read reviews to ReviewsService - CatalogService.impl (srv => { - srv.on ('READ', 'Books/reviews', (req) => { + const CatalogService = await cds.connect.to ('CatalogService') + CatalogService.impl (() => { + CatalogService.on ('READ', 'Books/reviews', (req) => { + const { Reviews } = ReviewsService.entities const [ subject ] = req.params const tx = ReviewsService.transaction (req) return tx.run (SELECT.from (Reviews) .where ({subject})) @@ -31,4 +28,5 @@ cds.on('listening', async()=>{ }) +// Delegate bootstrapping to built-in server.js module.exports = cds.server