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", "kind": "odata",
"model": "@capire/reviews" "model": "@capire/reviews"
}, },
"messaging": { "OrdersService": {
"[production]": { "kind": "enterprise-messaging" }, "kind": "odata",
"[hybrid]": { "kind": "enterprise-messaging-shared" }, "model": "@capire/orders"
"[local]": { "kind": "file-based-messaging" },
"kind": "local-messaging"
}, },
"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 } "log": { "service": true }
} }

View File

@@ -15,3 +15,7 @@ require('./srv/swagger-ui')
// Returning cds.server // Returning cds.server
module.exports = 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) => { CatalogService.prepend (srv => srv.on ('READ', 'Books/reviews', (req) => {
console.debug ('> delegating request to ReviewsService') console.debug ('> delegating request to ReviewsService')
const [id] = req.params, { columns, limit } = req.query.SELECT 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) => { ReviewsService.on ('reviewed', (msg) => {
console.debug ('> received:', msg.event, msg.data) console.debug ('> received:', msg.event, msg.data)
const { subject, count, rating } = msg.data const { subject, count, rating } = msg.data
return UPDATE(Books,subject).with({ numberOfReviews:count, rating }) 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", "kind": "odata",
"model": "@capire/orders" "model": "@capire/orders"
}, },
"db": {
"kind": "sql",
"[development]": {
"model": "db/sqlite"
},
"[production]": {
"model": "db/hana"
}
},
"messaging": { "messaging": {
"[production]": { "[production]": { "kind": "enterprise-messaging" },
"kind": "enterprise-messaging" "[development]": { "kind": "file-based-messaging" },
}, "[hybrid!]": { "kind": "enterprise-messaging-shared" }
"[hybrid]": {
"kind": "enterprise-messaging-shared"
},
"[local]": {
"kind": "file-based-messaging"
},
"kind": "local-messaging"
}, },
"hana": { "hana": {
"deploy-format": "hdbtable" "deploy-format": "hdbtable"

View File

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