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 00000000..f9d593af Binary files /dev/null and b/packages/reviews-service-1.0.0.tgz differ