From 8575b75edb0c481cf69b613f37c271724c9f873e Mon Sep 17 00:00:00 2001 From: Wolfgang Koch Date: Thu, 15 Oct 2020 14:15:51 +0200 Subject: [PATCH] pdm service --- .../db/data/sap.capire.bookshop-Customers.csv | 3 +++ gdpr/db/data/sap.capire.bookshop-Orders.csv | 3 +++ gdpr/db/schema.cds | 24 ++++++------------- gdpr/index.cds | 3 +++ gdpr/package.json | 22 +++++++++++++++++ gdpr/srv/{pdm_service.cds => pdm-service.cds} | 19 ++++++++------- ...rs.csv => _sap.capire.bookshop-Orders.csv} | 0 orders/index.cds | 3 +++ 8 files changed, 52 insertions(+), 25 deletions(-) create mode 100644 gdpr/db/data/sap.capire.bookshop-Customers.csv create mode 100644 gdpr/db/data/sap.capire.bookshop-Orders.csv create mode 100644 gdpr/index.cds create mode 100644 gdpr/package.json rename gdpr/srv/{pdm_service.cds => pdm-service.cds} (55%) rename orders/db/data/{sap.capire.bookshop-Orders.csv => _sap.capire.bookshop-Orders.csv} (100%) create mode 100644 orders/index.cds diff --git a/gdpr/db/data/sap.capire.bookshop-Customers.csv b/gdpr/db/data/sap.capire.bookshop-Customers.csv new file mode 100644 index 00000000..e0a126aa --- /dev/null +++ b/gdpr/db/data/sap.capire.bookshop-Customers.csv @@ -0,0 +1,3 @@ +ID;modifiedAt;createdAt;createdBy;modifiedBy;Email;FirstName;LastName;CreditCardNo;dateOfBirth +8e2f2640-6866-4dcf-8f4d-3027aa831cad;2019-04-04;2019-01-31;admin@business.com;admin@business.com;john.doe@test.com;John;Doe;9977-6655-4433-2211;1970-01-01 +74e718c9-ff99-47f1-8ca3-950c850777d4;2019-04-04;2019-01-30;admin@business.com;admin@business.com;jane.doe@sap.com;Jane;Doe;2211-3344-5566-7788;1980-11-11 \ No newline at end of file diff --git a/gdpr/db/data/sap.capire.bookshop-Orders.csv b/gdpr/db/data/sap.capire.bookshop-Orders.csv new file mode 100644 index 00000000..64117b09 --- /dev/null +++ b/gdpr/db/data/sap.capire.bookshop-Orders.csv @@ -0,0 +1,3 @@ +ID;modifiedAt;createdAt;createdBy;modifiedBy;OrderNo;Customer_ID;currency_code +7e2f2640-6866-4dcf-8f4d-3027aa831cad;2019-04-04;2019-01-31;john.doe@test.com;john.doe@test.com;1;8e2f2640-6866-4dcf-8f4d-3027aa831cad;USD +64e718c9-ff99-47f1-8ca3-950c850777d4;2019-04-04;2019-01-30;jane.doe@test.com;jane.doe@test.com;2;74e718c9-ff99-47f1-8ca3-950c850777d4;USD \ No newline at end of file diff --git a/gdpr/db/schema.cds b/gdpr/db/schema.cds index cf326778..a8462360 100644 --- a/gdpr/db/schema.cds +++ b/gdpr/db/schema.cds @@ -1,24 +1,14 @@ // Proxy for importing schema from bookshop sample -using from '@capire/bookshop'; -using { Currency, managed, cuid } from '@sap/cds/common'; +using { sap.capire.bookshop.Books } from '@capire/bookshop'; +using { sap.capire.bookshop.Orders } from '@capire/orders'; +using { sap.capire.bookshop.OrderItems } from '@capire/orders'; +using { Currency, managed, cuid } from '@sap/cds/common'; namespace sap.capire.bookshop; -entity Orders : managed { - key ID : cds.UUID; - OrderNo : String @title:'Order Number'; //> readable key - Customer : Association to Customers; - Items : Composition of many OrderItems on Items.parent = $self; - total : Decimal(9,2) @readonly; - currency : Currency; -} -entity OrderItems { - key ID : cds.UUID; - parent : Association to Orders not null; - book : Association to bookshop.Books; - amount : Integer; - netAmount: Decimal(9,2); -} +extend Orders with { + Customer : Association to Customers; +} entity Customers : managed { key ID : UUID; diff --git a/gdpr/index.cds b/gdpr/index.cds new file mode 100644 index 00000000..3f57f998 --- /dev/null +++ b/gdpr/index.cds @@ -0,0 +1,3 @@ +namespace sap.capire.gdpr; //> important for reflection +using from './db/schema'; +using from './srv/pdm-service'; \ No newline at end of file diff --git a/gdpr/package.json b/gdpr/package.json new file mode 100644 index 00000000..fb3a21f8 --- /dev/null +++ b/gdpr/package.json @@ -0,0 +1,22 @@ +{ + "name": "@capire/fiori", + "version": "1.0.0", + "dependencies": { + "@capire/bookshop": "../bookshop", + "@capire/orders": "../orders", + "@capire/common": "../common", + "@sap/cds": "^4", + "express": "^4.17.1" + }, + "scripts": { + "start": "cds run --in-memory?", + "watch": "cds watch" + }, + "cds": { + "requires": { + "db": { + "kind": "sql" + } + } + } +} \ No newline at end of file diff --git a/gdpr/srv/pdm_service.cds b/gdpr/srv/pdm-service.cds similarity index 55% rename from gdpr/srv/pdm_service.cds rename to gdpr/srv/pdm-service.cds index 217a89b9..d0fc57e6 100644 --- a/gdpr/srv/pdm_service.cds +++ b/gdpr/srv/pdm-service.cds @@ -1,15 +1,18 @@ -using from '@capire/bookshop'; -using { sap.capire.bookshop as db } from '../db/schema'; +//using from '@capire/orders'; +using { sap.capire.bookshop as db } from '../db/schema'; +using { sap.capire.bookshop.Books } from '@capire/bookshop'; +using { sap.capire.bookshop.Orders } from '@capire/orders'; +using { sap.capire.bookshop.OrderItems } from '@capire/orders'; -@requires: 'system-user' +//@requires: 'system-user' service PDM_Service { entity Customers as projection on db.Customers; - entity OrderItems as - SELECT from db.Orders - { key ID, - key Items.ID as Item_ID, + entity OrderItemView as + SELECT from Orders + { //key ID, + //key Items.ID as Item_ID, OrderNo, Customer.ID as Customer_ID, Customer.Email as Customer_Email, @@ -22,7 +25,7 @@ using { sap.capire.bookshop as db } from '../db/schema'; PersonalData.EntitySemantics: 'DataSubject' ) { - ID @PersonalData.FieldSemantics: 'DataSubjectID'; + ID @PersonalData.FieldSemantics: 'DataSubjectID'; FirstName @PersonalData.IsPotentiallyPersonal; LastName @PersonalData.IsPotentiallyPersonal; CreditCardNo @PersonalData.IsPotentiallyPersonal; diff --git a/orders/db/data/sap.capire.bookshop-Orders.csv b/orders/db/data/_sap.capire.bookshop-Orders.csv similarity index 100% rename from orders/db/data/sap.capire.bookshop-Orders.csv rename to orders/db/data/_sap.capire.bookshop-Orders.csv diff --git a/orders/index.cds b/orders/index.cds new file mode 100644 index 00000000..cab5fa14 --- /dev/null +++ b/orders/index.cds @@ -0,0 +1,3 @@ +namespace sap.capire.orders; //> important for reflection +using from './db/schema'; +using from './srv/orders-service';