This commit is contained in:
Daniel
2021-10-19 20:21:49 +02:00
committed by Daniel Hutzel
parent 5c3cec973e
commit 64fe700d1e
5 changed files with 28 additions and 35 deletions

View File

@@ -15,13 +15,24 @@
"kind": "odata",
"model": "@capire/reviews"
},
"messaging": {
"[production]": { "kind": "enterprise-messaging" },
"[hybrid]": { "kind": "enterprise-messaging-shared" },
"[local]": { "kind": "file-based-messaging" },
"kind": "local-messaging"
"OrdersService": {
"kind": "odata",
"model": "@capire/orders"
},
"db": { "kind": "sql" }
"messaging": {
"[development]": { "kind": "file-based-messaging" },
"[hybrid]": { "kind": "enterprise-messaging-shared" },
"[production]": { "kind": "enterprise-messaging" }
},
"db": {
"kind": "sql",
"[development]": {
"model": "db/sqlite"
},
"[production]": {
"model": "db/hana"
}
}
},
"log": { "service": true }
}

View File

@@ -15,3 +15,7 @@ require('./srv/swagger-ui')
// Returning cds.server
module.exports = cds.server
// For didactic reasons in capire
const { ReviewsService, OrdersService } = cds.requires
if (!ReviewsService.credentials && !OrdersService.credentials) cds.requires.messaging = false

View File

@@ -20,7 +20,7 @@ module.exports = async()=>{ // called by server.js
CatalogService.prepend (srv => srv.on ('READ', 'Books/reviews', (req) => {
console.debug ('> delegating request to ReviewsService')
const [id] = req.params, { columns, limit } = req.query.SELECT
return ReviewsService.tx(req).read ('Reviews',columns).limit(limit).where({subject:String(id)})
return ReviewsService.read ('Reviews',columns).limit(limit).where({subject:String(id)})
}))
//
@@ -37,13 +37,12 @@ module.exports = async()=>{ // called by server.js
})
//
// Update Books' average ratings when ReviewsService signals updatd reviews
// Update Books' average ratings when ReviewsService signals updated reviews
//
ReviewsService.on ('reviewed', (msg) => {
console.debug ('> received:', msg.event, msg.data)
const { subject, count, rating } = msg.data
return UPDATE(Books,subject).with({ numberOfReviews:count, rating })
// ^ Note: the framework will execute this and take care for db.tx
})
//

View File

@@ -24,26 +24,10 @@
"kind": "odata",
"model": "@capire/orders"
},
"db": {
"kind": "sql",
"[development]": {
"model": "db/sqlite"
},
"[production]": {
"model": "db/hana"
}
},
"messaging": {
"[production]": {
"kind": "enterprise-messaging"
},
"[hybrid]": {
"kind": "enterprise-messaging-shared"
},
"[local]": {
"kind": "file-based-messaging"
},
"kind": "local-messaging"
"[production]": { "kind": "enterprise-messaging" },
"[development]": { "kind": "file-based-messaging" },
"[hybrid!]": { "kind": "enterprise-messaging-shared" }
},
"hana": {
"deploy-format": "hdbtable"

View File

@@ -10,17 +10,12 @@
"@sap/cds": "^5",
"express": "^4.17.1"
},
"scripts": {
"reviews-service": "cds watch",
"books-reviewed": "cds watch ../reviewed"
},
"cds": {
"requires": {
"messaging": {
"[production]": { "kind": "enterprise-messaging" },
"[development]": { "kind": "file-based-messaging" },
"[hybrid]": { "kind": "enterprise-messaging-shared" },
"[local]": { "kind": "file-based-messaging" },
"kind": "local-messaging"
"[production]": { "kind": "enterprise-messaging" }
},
"db": { "kind": "sql" }
}