receive OrderedBook event

This commit is contained in:
Vladislav Leonkev
2024-12-11 17:17:30 +01:00
parent db100bfda4
commit 1f14460797
6 changed files with 21 additions and 8 deletions

1
app/router/orders Symbolic link
View File

@@ -0,0 +1 @@
../../orders/app/orders

View File

@@ -58,6 +58,12 @@
"target": "/user/$1", "target": "/user/$1",
"destination": "bookstore-api", "destination": "bookstore-api",
"csrfProtection": true "csrfProtection": true
},
{
"source": "^(.*)$",
"target": "$1",
"localDir": ".",
"cacheControl": "no-cache, no-store, must-revalidate"
} }
] ]
} }

View File

@@ -26,10 +26,11 @@ module.exports = async()=>{ // called by server.js
// //
// Create an order with the OrdersService when CatalogService signals a new order // Create an order with the OrdersService when CatalogService signals a new order
// //
CatalogService.on ('OrderedBook', async (msg) => { const messaging = await cds.connect.to('messaging')
messaging.on('CatalogService.OrderedBook', async (msg) => {
const { book, quantity, buyer } = msg.data const { book, quantity, buyer } = msg.data
const { title, price } = await db.tx(msg).read (Books, book, b => { b.title, b.price }) const { title, price } = await db.read (Books, book, b => { b.title, b.price })
return OrdersService.tx(msg).create ('Orders').entries({ return OrdersService.create ('OrdersNoDraft').entries({
OrderNo: 'Order at '+ (new Date).toLocaleString(), OrderNo: 'Order at '+ (new Date).toLocaleString(),
Items: [{ product:{ID:`${book}`}, title, price, quantity }], Items: [{ product:{ID:`${book}`}, title, price, quantity }],
buyer, createdBy: buyer buyer, createdBy: buyer

View File

@@ -1,7 +1,7 @@
{ {
"emname": "samples-emname", "emname": "samples-multi-service-shared-db",
"version": "1.1.0", "version": "1.1.0",
"namespace": "default/samples/1", "namespace": "cap/samples/shdb",
"options": { "options": {
"management": true, "management": true,
"messagingrest": true, "messagingrest": true,
@@ -10,7 +10,7 @@
"rules": { "rules": {
"topicRules": { "topicRules": {
"publishFilter": [ "publishFilter": [
"${namespace}/*" "*"
], ],
"subscribeFilter": [ "subscribeFilter": [
"*" "*"
@@ -18,10 +18,10 @@
}, },
"queueRules": { "queueRules": {
"publishFilter": [ "publishFilter": [
"${namespace}/*" "*"
], ],
"subscribeFilter": [ "subscribeFilter": [
"${namespace}/*" "*"
] ]
} }
}, },

View File

@@ -100,6 +100,7 @@ modules:
- name: samples-messaging - name: samples-messaging
- name: samples-db - name: samples-db
- name: samples-auth - name: samples-auth
- name: samples-destination
- name: samples-db-deployer - name: samples-db-deployer
type: hdb type: hdb

View File

@@ -2,4 +2,8 @@ using { sap.capire.orders as my } from '../db/schema';
service OrdersService { service OrdersService {
entity Orders as projection on my.Orders; entity Orders as projection on my.Orders;
@odata.draft.bypass
@(requires: 'system-user')
entity OrdersNoDraft as projection on my.Orders;
} }