receive OrderedBook event
This commit is contained in:
1
app/router/orders
Symbolic link
1
app/router/orders
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../orders/app/orders
|
||||||
@@ -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"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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}/*"
|
"*"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
1
mta.yaml
1
mta.yaml
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user