Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

Commit 02f19e2

Browse files
committed
Simplifying samples
1 parent 05cdb67 commit 02f19e2

File tree

8 files changed

+58
-19
lines changed

8 files changed

+58
-19
lines changed

fiori/app/bookshop.html

Lines changed: 0 additions & 3 deletions
This file was deleted.

fiori/app/reviews.html

Lines changed: 0 additions & 3 deletions
This file was deleted.

fiori/server.js

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,12 @@ cds.emit = function (event,...args) {
99
}
1010

1111
cds.once('bootstrap',(app)=>{
12-
app.use ('/orders/webapp', _from('@capire/orders/app/orders/webapp/manifest.json'))
13-
app.use ('/bookshop', _from('@capire/bookshop/app/vue/index.html'))
14-
app.use ('/reviews', _from('@capire/reviews/app/vue/index.html'))
12+
app.serve ('/orders/webapp').from('@capire/orders','app/orders/webapp')
13+
app.serve ('/bookshop').from('@capire/bookshop','app/vue')
14+
app.serve ('/reviews').from('@capire/reviews','app/vue')
1515
})
1616

1717
cds.once('served', require('./srv/mashup'))
1818
cds.once('served', require('@capire/suppliers/srv/mashup'))
1919

2020
module.exports = cds.server
21-
22-
23-
// -----------------------------------------------------------------------
24-
// Helper for serving static content from npm-installed packages
25-
const {static} = require('express')
26-
const {dirname} = require('path')
27-
const _from = target => static (dirname (require.resolve(target)))

fiori/srv/mashup.cds

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@
33
// Mashing up imported models...
44
//
55

6-
using { sap.capire.bookshop.Books } from '@capire/bookshop';
7-
86
//
97
// Extend Books with access to Reviews and average ratings
108
//
119

10+
using { CatalogService.ListOfBooks, sap.capire.bookshop.Books } from '@capire/bookshop';
1211
using { ReviewsService.Reviews } from '@capire/reviews';
1312
extend Books with {
1413
reviews : Composition of many Reviews on reviews.subject = $self.ID;
15-
rating : Decimal;
14+
rating : Reviews:rating;
1615
}
16+
extend projection ListOfBooks with { rating }
1717

1818
//
1919
// Extend Orders with Books as Products

reviews/test/bookshop/.env

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
cds.requires.messaging.kind = file-based-messaging
2+
PORT = 4004

reviews/test/bookshop/package.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "@capire/fiori",
3+
"version": "1.0.0",
4+
"dependencies": {
5+
"@capire/bookshop": "*",
6+
"@capire/reviews": "*",
7+
"@sap/cds": "^5",
8+
"express": "^4.17.1"
9+
},
10+
"cds": {
11+
"requires": {
12+
"auth": { "strategy": "dummy" },
13+
"ReviewsService": {
14+
"kind": "odata",
15+
"model": "@capire/reviews"
16+
}
17+
}
18+
}
19+
}

reviews/test/bookshop/server.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
const cds = require ('@sap/cds')
2+
3+
cds.once('bootstrap',(app)=>{
4+
// Delegate to imported apps (reviews only when mocked)
5+
app.serve ('/bookshop').from ('@capire/bookshop','app/vue')
6+
app.serve ('/reviews',).from ('@capire/reviews','app/vue')
7+
})
8+
9+
cds.once('served', async ()=>{
10+
// Update Books' average ratings when ReviewsService signals updated reviews
11+
const ReviewsService = await cds.connect.to ('ReviewsService')
12+
ReviewsService.on ('reviewed', (msg) => {
13+
console.debug ('> received:', msg.event, msg.data)
14+
const { subject, rating } = msg.data
15+
return UPDATE('Books',subject).with({rating})
16+
})
17+
18+
})
19+
20+
module.exports = cds.server

reviews/test/bookshop/services.cds

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
namespace sap.capire.bookshop; //> allows UPDATE('Books')...
2+
//
3+
// Extend Books with access to Reviews and average ratings
4+
//
5+
using { CatalogService.ListOfBooks, sap.capire.bookshop.Books } from '@capire/bookshop';
6+
using { ReviewsService.Reviews } from '@capire/reviews';
7+
extend Books with {
8+
reviews : Composition of many Reviews on reviews.subject = $self.ID;
9+
rating : Reviews:rating;
10+
}
11+
extend projection ListOfBooks with { rating }

0 commit comments

Comments
 (0)