From 00f118deedb4031e196b05f75cf34b6d3f70f3bb Mon Sep 17 00:00:00 2001 From: d045778 Date: Mon, 23 Sep 2019 13:32:14 +0200 Subject: [PATCH] final state of exercise 3 --- packages/bookstore/package.json | 12 ++++++++++++ packages/bookstore/srv/services.cds | 7 +++++++ packages/bookstore/srv/services.js | 17 +++++++++++++++++ packages/reviews-service-1.0.0.tgz | Bin 0 -> 2254 bytes 4 files changed, 36 insertions(+) create mode 100644 packages/reviews-service-1.0.0.tgz diff --git a/packages/bookstore/package.json b/packages/bookstore/package.json index 7b2cf268..aaeabf40 100644 --- a/packages/bookstore/package.json +++ b/packages/bookstore/package.json @@ -9,6 +9,7 @@ }, "dependencies": { "@sap/capire-products": "^1.0.0", + "reviews-service": "file:packages/reviews-service-1.0.0.tgz", "@sap/cds": "^3.17.4", "express": "^4.17.1" }, @@ -16,5 +17,16 @@ "build": "cds build/all --clean", "deploy": "cds deploy", "start": "cds run" + }, + "cds": { + "requires": { + "sap.capire.reviews.ReviewsService": { + "model": "reviews-service", + "kind": "odata", + "credentials": { + "file": "default" + } + } + } } } diff --git a/packages/bookstore/srv/services.cds b/packages/bookstore/srv/services.cds index bd5b9dc9..3de0de71 100644 --- a/packages/bookstore/srv/services.cds +++ b/packages/bookstore/srv/services.cds @@ -14,4 +14,11 @@ service CatalogService { using { sap.capire.products.AdminService } from '@sap/capire-products'; extend service AdminService with { entity Authors as projection on my.Authors; +} + +// Adding reviews via capire-reviews service +using { sap.capire.reviews.ReviewsService as external} from 'reviews-service'; + +extend service CatalogService { + @readonly entity Reviews @(cds.persistence.skip) as projection on external.Reviews; } \ No newline at end of file diff --git a/packages/bookstore/srv/services.js b/packages/bookstore/srv/services.js index b6c6edea..c91fa020 100644 --- a/packages/bookstore/srv/services.js +++ b/packages/bookstore/srv/services.js @@ -15,4 +15,21 @@ module.exports = async (srv) => { } }))) }) + + const reviews_srv = await cds.connect.to('sap.capire.reviews.ReviewsService') + + // react on event messages from reviews service + reviews_srv.on('reviewed', (msg) => { + console.debug('> received', msg) + }) + + // delegate requests to reviews service + srv.on('READ', 'Reviews', async (req) => { + const { Reviews } = reviews_srv.entities + + const tx = reviews_srv.transaction(req) + const results = await tx.read(Reviews) + + return results + }) } \ No newline at end of file diff --git a/packages/reviews-service-1.0.0.tgz b/packages/reviews-service-1.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f9d593afb67ba0ff7f0a9c45f6d4c3323af4ab8f GIT binary patch literal 2254 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 literal 0 HcmV?d00001