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",
"destination": "bookstore-api",
"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
//
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 { title, price } = await db.tx(msg).read (Books, book, b => { b.title, b.price })
return OrdersService.tx(msg).create ('Orders').entries({
const { title, price } = await db.read (Books, book, b => { b.title, b.price })
return OrdersService.create ('OrdersNoDraft').entries({
OrderNo: 'Order at '+ (new Date).toLocaleString(),
Items: [{ product:{ID:`${book}`}, title, price, quantity }],
buyer, createdBy: buyer

View File

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

View File

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

View File

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