This repository was archived by the owner on Aug 29, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 8 files changed +58
-19
lines changed Expand file tree Collapse file tree 8 files changed +58
-19
lines changed Load Diff This file was deleted.
Load Diff This file was deleted.
Original file line number Diff line number Diff line change @@ -9,19 +9,12 @@ cds.emit = function (event,...args) {
99}
1010
1111cds . 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
1717cds . once ( 'served' , require ( './srv/mashup' ) )
1818cds . once ( 'served' , require ( '@capire/suppliers/srv/mashup' ) )
1919
2020module . 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 ) ) )
Original file line number Diff line number Diff line change 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' ;
1211using { ReviewsService .Reviews } from ' @capire/reviews' ;
1312extend 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
Original file line number Diff line number Diff line change 1+ cds.requires.messaging.kind = file-based-messaging
2+ PORT = 4004
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 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 }
You can’t perform that action at this time.
0 commit comments