some more cleanup

This commit is contained in:
Daniel
2019-12-17 12:46:10 +01:00
parent 54d0c8b35d
commit 2c0f69a161
2 changed files with 15 additions and 16 deletions

View File

@@ -12,10 +12,10 @@ const { Books, Addresses } = db.entities // entities in local database
module.exports = (admin => {
// Handler to delegate ValueHelp requests to S/4 backend, fetching current user's addresses from there
admin.on ('READ', 'Addresses', (req) => {
admin.on ('READ', 'usersAddresses', (req) => {
const { SELECT } = cds.ql(req) //> convenient alternative to bupa.transaction(req).run(SELECT...)
return SELECT.from (externalAddresses) .where ({ BusinessPartner: req.user.id || 'anonymous' })
//> this is applying projection generically, i.e. the equivalent of:
//> this is applying projection from CDS model generically, i.e. the equivalent of:
// const { A_BusinessPartnerAddress } = bupa.entities
// return SELECT.from (A_BusinessPartnerAddress, a => {
// a.AddressID.as('ID'),

View File

@@ -8,8 +8,7 @@ extend service API_BUSINESS_PARTNER with {
/**
* Simplified view on external addresses
*/
@mashup @cds.autoexpose //> for ValueHelps
entity Addresses as projection on external.A_BusinessPartnerAddress {
@mashup entity Addresses as projection on external.A_BusinessPartnerAddress {
key AddressID as ID,
key BusinessPartner,
Country as country,
@@ -35,15 +34,15 @@ extend service API_BUSINESS_PARTNER with {
* Mashup w/ services to also serve shipping addresses
*/
using { AdminService } from './admin-service';
extend service AdminService {
// entity usersAddresses as projection on external.Addresses;
extend service AdminService { // for ValueHelps from S/4 backend
@readonly entity usersAddresses as projection on external.Addresses;
}
// TODO: not used so far...
using { CatalogService } from './cat-service';
extend service CatalogService {
@readonly @requires:'authenticated-user'
entity usersAddresses as projection on external.Addresses;
extend service CatalogService { // for ValueHelps from S/4 backend
@requires:'authenticated-user'
@readonly entity usersAddresses as projection on external.Addresses;
}
@@ -52,13 +51,6 @@ extend service CatalogService {
*/
using { sap.capire.bookshop } from '../db/schema';
/**
* Extend Orders to maintain references to (replicated) external Addresses
*/
extend bookshop.Orders with {
shippingAddress : Association to bookshop.Addresses;
}
/**
* Add an entity to replicate external address data for quick access,
* e.g. when displaying lists of orders.
@@ -67,3 +59,10 @@ extend bookshop.Orders with {
entity sap.capire.bookshop.Addresses as SELECT from external.Addresses { *,
false as tombstone : Boolean
};
/**
* Extend Orders to with references to replicated external Addresses
*/
extend bookshop.Orders with {
shippingAddress : Association to bookshop.Addresses;
}