Simplifying samples

This commit is contained in:
Daniel
2021-06-08 18:20:44 +02:00
parent 05cdb67329
commit 02f19e295d
8 changed files with 58 additions and 19 deletions

View File

@@ -0,0 +1,2 @@
cds.requires.messaging.kind = file-based-messaging
PORT = 4004

View File

@@ -0,0 +1,19 @@
{
"name": "@capire/fiori",
"version": "1.0.0",
"dependencies": {
"@capire/bookshop": "*",
"@capire/reviews": "*",
"@sap/cds": "^5",
"express": "^4.17.1"
},
"cds": {
"requires": {
"auth": { "strategy": "dummy" },
"ReviewsService": {
"kind": "odata",
"model": "@capire/reviews"
}
}
}
}

View File

@@ -0,0 +1,20 @@
const cds = require ('@sap/cds')
cds.once('bootstrap',(app)=>{
// Delegate to imported apps (reviews only when mocked)
app.serve ('/bookshop').from ('@capire/bookshop','app/vue')
app.serve ('/reviews',).from ('@capire/reviews','app/vue')
})
cds.once('served', async ()=>{
// Update Books' average ratings when ReviewsService signals updated reviews
const ReviewsService = await cds.connect.to ('ReviewsService')
ReviewsService.on ('reviewed', (msg) => {
console.debug ('> received:', msg.event, msg.data)
const { subject, rating } = msg.data
return UPDATE('Books',subject).with({rating})
})
})
module.exports = cds.server

View File

@@ -0,0 +1,11 @@
namespace sap.capire.bookshop; //> allows UPDATE('Books')...
//
// Extend Books with access to Reviews and average ratings
//
using { CatalogService.ListOfBooks, sap.capire.bookshop.Books } from '@capire/bookshop';
using { ReviewsService.Reviews } from '@capire/reviews';
extend Books with {
reviews : Composition of many Reviews on reviews.subject = $self.ID;
rating : Reviews:rating;
}
extend projection ListOfBooks with { rating }