From 26d7fc767cbbecfb43742f19ef9ccbb142d8602b Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 2 Mar 2020 00:08:49 +0100 Subject: [PATCH] ... --- .../bookshop-enhanced/app/index.cds | 0 .../bookshop-enhanced/db/schema.cds | 0 .../bookshop-enhanced/package.json | 0 .../bookshop-enhanced/srv/services.cds | 0 .../bookshop-enhanced/srv/services.js | 0 .../bookshop-enhanced/tests/genres.http | 0 .../bookshop-enhanced/tests/reviews.http | 0 .../db/data/sap.capire.bookstore-Authors.csv | 0 .../data/sap.capire.products-Categories.csv | 0 .../db/data/sap.capire.products-Products.csv | 0 .../sap.capire.products-Products_texts.csv | 0 .../bookstore/db/schema.cds | 0 .../bookstore/package.json | 0 .../bookstore/srv/_workarounds.cds | 0 .../bookstore/srv/services.cds | 0 .../bookstore/srv/services.js | 0 .../bookstore/tests/books.cds | 0 .../bookstore/tests/localized-data.test.js | 0 .../common-contacts/db/code-lists.cds | 0 .../common-contacts/db/schema.cds | 0 .../common-contacts/index.cds | 0 .../common-contacts/package.json | 0 .../common-contacts/readme.md | 0 .../common-contacts/srv/code-lists.js | 0 .../common-contacts/tests/code-lists.test.js | 0 .../common-contacts/tests/index.cds | 0 .../media-server/db/data-model.cds | 0 .../media-server/index.cds | 0 .../media-server/package.json | 0 .../media-server/srv/media-service.cds | 0 .../media-server/srv/media-service.js | 0 .../db/data/sap.capire.orders-OrderItems.csv | 0 .../db/data/sap.capire.orders-Orders.csv | 0 .../orders-service/db/schema.cds | 0 .../orders-service/index.cds | 0 .../orders-service/package.json | 0 .../orders-service/srv/orders-service.cds | 0 .../products-service/db/schema.cds | 0 .../products-service/index.cds | 0 .../products-service/package.json | 0 .../products-service/srv/admin-service.cds | 0 .../products-service/tests/categories.test.js | 0 .../data/sap.capire.products-Categories.csv | 0 .../products-service/tests/postman.json | 0 .../users-service/index.cds | 0 .../users-service/package.json | 0 .../users-service/srv/services.cds | 0 .../db/data/sap.capire.bookshop-Genres.csv | 16 ++++++++ bookshop/db/schema.cds | 9 ++++- bookshop/package.json | 7 ++-- bookshop/test/genres.cds | 4 ++ bookshop/test/genres.http | 38 +++++++++++++++++++ .../bookshop.http => test/requests.http} | 0 bookshop/tests/orders.http | 18 --------- common/package.json | 2 +- fiori/app/admin/fiori-service.cds | 37 +++++++++++++++++- fiori/app/browse/fiori-service.cds | 3 +- fiori/app/common.cds | 7 +++- fiori/app/index.cds | 2 +- fiori/app/orders/fiori-service.cds | 2 +- fiori/db/schema.cds | 3 ++ fiori/package.json | 7 ++-- fiori/srv/admin-service.cds | 5 +++ fiori/srv/admin-service.js | 8 ++++ package.json | 7 ++-- .../reviews-service => reviews}/db/schema.cds | 0 .../reviews-service => reviews}/index.cds | 0 .../reviews-service => reviews}/package.json | 0 .../srv/reviews-service.cds | 0 .../srv/reviews-service.js | 0 .../tests/messaging.test.js | 0 71 files changed, 141 insertions(+), 34 deletions(-) rename {packages => _packages}/bookshop-enhanced/app/index.cds (100%) rename {packages => _packages}/bookshop-enhanced/db/schema.cds (100%) rename {packages => _packages}/bookshop-enhanced/package.json (100%) rename {packages => _packages}/bookshop-enhanced/srv/services.cds (100%) rename {packages => _packages}/bookshop-enhanced/srv/services.js (100%) rename {packages => _packages}/bookshop-enhanced/tests/genres.http (100%) rename {packages => _packages}/bookshop-enhanced/tests/reviews.http (100%) rename {packages => _packages}/bookstore/db/data/sap.capire.bookstore-Authors.csv (100%) rename {packages => _packages}/bookstore/db/data/sap.capire.products-Categories.csv (100%) rename {packages => _packages}/bookstore/db/data/sap.capire.products-Products.csv (100%) rename {packages => _packages}/bookstore/db/data/sap.capire.products-Products_texts.csv (100%) rename {packages => _packages}/bookstore/db/schema.cds (100%) rename {packages => _packages}/bookstore/package.json (100%) rename {packages => _packages}/bookstore/srv/_workarounds.cds (100%) rename {packages => _packages}/bookstore/srv/services.cds (100%) rename {packages => _packages}/bookstore/srv/services.js (100%) rename {packages => _packages}/bookstore/tests/books.cds (100%) rename {packages => _packages}/bookstore/tests/localized-data.test.js (100%) rename {packages => _packages}/common-contacts/db/code-lists.cds (100%) rename {packages => _packages}/common-contacts/db/schema.cds (100%) rename {packages => _packages}/common-contacts/index.cds (100%) rename {packages => _packages}/common-contacts/package.json (100%) rename {packages => _packages}/common-contacts/readme.md (100%) rename {packages => _packages}/common-contacts/srv/code-lists.js (100%) rename {packages => _packages}/common-contacts/tests/code-lists.test.js (100%) rename {packages => _packages}/common-contacts/tests/index.cds (100%) rename {packages => _packages}/media-server/db/data-model.cds (100%) rename {packages => _packages}/media-server/index.cds (100%) rename {packages => _packages}/media-server/package.json (100%) rename {packages => _packages}/media-server/srv/media-service.cds (100%) rename {packages => _packages}/media-server/srv/media-service.js (100%) rename {packages => _packages}/orders-service/db/data/sap.capire.orders-OrderItems.csv (100%) rename {packages => _packages}/orders-service/db/data/sap.capire.orders-Orders.csv (100%) rename {packages => _packages}/orders-service/db/schema.cds (100%) rename {packages => _packages}/orders-service/index.cds (100%) rename {packages => _packages}/orders-service/package.json (100%) rename {packages => _packages}/orders-service/srv/orders-service.cds (100%) rename {packages => _packages}/products-service/db/schema.cds (100%) rename {packages => _packages}/products-service/index.cds (100%) rename {packages => _packages}/products-service/package.json (100%) rename {packages => _packages}/products-service/srv/admin-service.cds (100%) rename {packages => _packages}/products-service/tests/categories.test.js (100%) rename {packages => _packages}/products-service/tests/data/sap.capire.products-Categories.csv (100%) rename {packages => _packages}/products-service/tests/postman.json (100%) rename {packages => _packages}/users-service/index.cds (100%) rename {packages => _packages}/users-service/package.json (100%) rename {packages => _packages}/users-service/srv/services.cds (100%) create mode 100644 bookshop/db/data/sap.capire.bookshop-Genres.csv create mode 100644 bookshop/test/genres.cds create mode 100644 bookshop/test/genres.http rename bookshop/{tests/bookshop.http => test/requests.http} (100%) delete mode 100644 bookshop/tests/orders.http create mode 100644 fiori/db/schema.cds create mode 100644 fiori/srv/admin-service.cds create mode 100644 fiori/srv/admin-service.js rename {packages/reviews-service => reviews}/db/schema.cds (100%) rename {packages/reviews-service => reviews}/index.cds (100%) rename {packages/reviews-service => reviews}/package.json (100%) rename {packages/reviews-service => reviews}/srv/reviews-service.cds (100%) rename {packages/reviews-service => reviews}/srv/reviews-service.js (100%) rename {packages/reviews-service => reviews}/tests/messaging.test.js (100%) diff --git a/packages/bookshop-enhanced/app/index.cds b/_packages/bookshop-enhanced/app/index.cds similarity index 100% rename from packages/bookshop-enhanced/app/index.cds rename to _packages/bookshop-enhanced/app/index.cds diff --git a/packages/bookshop-enhanced/db/schema.cds b/_packages/bookshop-enhanced/db/schema.cds similarity index 100% rename from packages/bookshop-enhanced/db/schema.cds rename to _packages/bookshop-enhanced/db/schema.cds diff --git a/packages/bookshop-enhanced/package.json b/_packages/bookshop-enhanced/package.json similarity index 100% rename from packages/bookshop-enhanced/package.json rename to _packages/bookshop-enhanced/package.json diff --git a/packages/bookshop-enhanced/srv/services.cds b/_packages/bookshop-enhanced/srv/services.cds similarity index 100% rename from packages/bookshop-enhanced/srv/services.cds rename to _packages/bookshop-enhanced/srv/services.cds diff --git a/packages/bookshop-enhanced/srv/services.js b/_packages/bookshop-enhanced/srv/services.js similarity index 100% rename from packages/bookshop-enhanced/srv/services.js rename to _packages/bookshop-enhanced/srv/services.js diff --git a/packages/bookshop-enhanced/tests/genres.http b/_packages/bookshop-enhanced/tests/genres.http similarity index 100% rename from packages/bookshop-enhanced/tests/genres.http rename to _packages/bookshop-enhanced/tests/genres.http diff --git a/packages/bookshop-enhanced/tests/reviews.http b/_packages/bookshop-enhanced/tests/reviews.http similarity index 100% rename from packages/bookshop-enhanced/tests/reviews.http rename to _packages/bookshop-enhanced/tests/reviews.http diff --git a/packages/bookstore/db/data/sap.capire.bookstore-Authors.csv b/_packages/bookstore/db/data/sap.capire.bookstore-Authors.csv similarity index 100% rename from packages/bookstore/db/data/sap.capire.bookstore-Authors.csv rename to _packages/bookstore/db/data/sap.capire.bookstore-Authors.csv diff --git a/packages/bookstore/db/data/sap.capire.products-Categories.csv b/_packages/bookstore/db/data/sap.capire.products-Categories.csv similarity index 100% rename from packages/bookstore/db/data/sap.capire.products-Categories.csv rename to _packages/bookstore/db/data/sap.capire.products-Categories.csv diff --git a/packages/bookstore/db/data/sap.capire.products-Products.csv b/_packages/bookstore/db/data/sap.capire.products-Products.csv similarity index 100% rename from packages/bookstore/db/data/sap.capire.products-Products.csv rename to _packages/bookstore/db/data/sap.capire.products-Products.csv diff --git a/packages/bookstore/db/data/sap.capire.products-Products_texts.csv b/_packages/bookstore/db/data/sap.capire.products-Products_texts.csv similarity index 100% rename from packages/bookstore/db/data/sap.capire.products-Products_texts.csv rename to _packages/bookstore/db/data/sap.capire.products-Products_texts.csv diff --git a/packages/bookstore/db/schema.cds b/_packages/bookstore/db/schema.cds similarity index 100% rename from packages/bookstore/db/schema.cds rename to _packages/bookstore/db/schema.cds diff --git a/packages/bookstore/package.json b/_packages/bookstore/package.json similarity index 100% rename from packages/bookstore/package.json rename to _packages/bookstore/package.json diff --git a/packages/bookstore/srv/_workarounds.cds b/_packages/bookstore/srv/_workarounds.cds similarity index 100% rename from packages/bookstore/srv/_workarounds.cds rename to _packages/bookstore/srv/_workarounds.cds diff --git a/packages/bookstore/srv/services.cds b/_packages/bookstore/srv/services.cds similarity index 100% rename from packages/bookstore/srv/services.cds rename to _packages/bookstore/srv/services.cds diff --git a/packages/bookstore/srv/services.js b/_packages/bookstore/srv/services.js similarity index 100% rename from packages/bookstore/srv/services.js rename to _packages/bookstore/srv/services.js diff --git a/packages/bookstore/tests/books.cds b/_packages/bookstore/tests/books.cds similarity index 100% rename from packages/bookstore/tests/books.cds rename to _packages/bookstore/tests/books.cds diff --git a/packages/bookstore/tests/localized-data.test.js b/_packages/bookstore/tests/localized-data.test.js similarity index 100% rename from packages/bookstore/tests/localized-data.test.js rename to _packages/bookstore/tests/localized-data.test.js diff --git a/packages/common-contacts/db/code-lists.cds b/_packages/common-contacts/db/code-lists.cds similarity index 100% rename from packages/common-contacts/db/code-lists.cds rename to _packages/common-contacts/db/code-lists.cds diff --git a/packages/common-contacts/db/schema.cds b/_packages/common-contacts/db/schema.cds similarity index 100% rename from packages/common-contacts/db/schema.cds rename to _packages/common-contacts/db/schema.cds diff --git a/packages/common-contacts/index.cds b/_packages/common-contacts/index.cds similarity index 100% rename from packages/common-contacts/index.cds rename to _packages/common-contacts/index.cds diff --git a/packages/common-contacts/package.json b/_packages/common-contacts/package.json similarity index 100% rename from packages/common-contacts/package.json rename to _packages/common-contacts/package.json diff --git a/packages/common-contacts/readme.md b/_packages/common-contacts/readme.md similarity index 100% rename from packages/common-contacts/readme.md rename to _packages/common-contacts/readme.md diff --git a/packages/common-contacts/srv/code-lists.js b/_packages/common-contacts/srv/code-lists.js similarity index 100% rename from packages/common-contacts/srv/code-lists.js rename to _packages/common-contacts/srv/code-lists.js diff --git a/packages/common-contacts/tests/code-lists.test.js b/_packages/common-contacts/tests/code-lists.test.js similarity index 100% rename from packages/common-contacts/tests/code-lists.test.js rename to _packages/common-contacts/tests/code-lists.test.js diff --git a/packages/common-contacts/tests/index.cds b/_packages/common-contacts/tests/index.cds similarity index 100% rename from packages/common-contacts/tests/index.cds rename to _packages/common-contacts/tests/index.cds diff --git a/packages/media-server/db/data-model.cds b/_packages/media-server/db/data-model.cds similarity index 100% rename from packages/media-server/db/data-model.cds rename to _packages/media-server/db/data-model.cds diff --git a/packages/media-server/index.cds b/_packages/media-server/index.cds similarity index 100% rename from packages/media-server/index.cds rename to _packages/media-server/index.cds diff --git a/packages/media-server/package.json b/_packages/media-server/package.json similarity index 100% rename from packages/media-server/package.json rename to _packages/media-server/package.json diff --git a/packages/media-server/srv/media-service.cds b/_packages/media-server/srv/media-service.cds similarity index 100% rename from packages/media-server/srv/media-service.cds rename to _packages/media-server/srv/media-service.cds diff --git a/packages/media-server/srv/media-service.js b/_packages/media-server/srv/media-service.js similarity index 100% rename from packages/media-server/srv/media-service.js rename to _packages/media-server/srv/media-service.js diff --git a/packages/orders-service/db/data/sap.capire.orders-OrderItems.csv b/_packages/orders-service/db/data/sap.capire.orders-OrderItems.csv similarity index 100% rename from packages/orders-service/db/data/sap.capire.orders-OrderItems.csv rename to _packages/orders-service/db/data/sap.capire.orders-OrderItems.csv diff --git a/packages/orders-service/db/data/sap.capire.orders-Orders.csv b/_packages/orders-service/db/data/sap.capire.orders-Orders.csv similarity index 100% rename from packages/orders-service/db/data/sap.capire.orders-Orders.csv rename to _packages/orders-service/db/data/sap.capire.orders-Orders.csv diff --git a/packages/orders-service/db/schema.cds b/_packages/orders-service/db/schema.cds similarity index 100% rename from packages/orders-service/db/schema.cds rename to _packages/orders-service/db/schema.cds diff --git a/packages/orders-service/index.cds b/_packages/orders-service/index.cds similarity index 100% rename from packages/orders-service/index.cds rename to _packages/orders-service/index.cds diff --git a/packages/orders-service/package.json b/_packages/orders-service/package.json similarity index 100% rename from packages/orders-service/package.json rename to _packages/orders-service/package.json diff --git a/packages/orders-service/srv/orders-service.cds b/_packages/orders-service/srv/orders-service.cds similarity index 100% rename from packages/orders-service/srv/orders-service.cds rename to _packages/orders-service/srv/orders-service.cds diff --git a/packages/products-service/db/schema.cds b/_packages/products-service/db/schema.cds similarity index 100% rename from packages/products-service/db/schema.cds rename to _packages/products-service/db/schema.cds diff --git a/packages/products-service/index.cds b/_packages/products-service/index.cds similarity index 100% rename from packages/products-service/index.cds rename to _packages/products-service/index.cds diff --git a/packages/products-service/package.json b/_packages/products-service/package.json similarity index 100% rename from packages/products-service/package.json rename to _packages/products-service/package.json diff --git a/packages/products-service/srv/admin-service.cds b/_packages/products-service/srv/admin-service.cds similarity index 100% rename from packages/products-service/srv/admin-service.cds rename to _packages/products-service/srv/admin-service.cds diff --git a/packages/products-service/tests/categories.test.js b/_packages/products-service/tests/categories.test.js similarity index 100% rename from packages/products-service/tests/categories.test.js rename to _packages/products-service/tests/categories.test.js diff --git a/packages/products-service/tests/data/sap.capire.products-Categories.csv b/_packages/products-service/tests/data/sap.capire.products-Categories.csv similarity index 100% rename from packages/products-service/tests/data/sap.capire.products-Categories.csv rename to _packages/products-service/tests/data/sap.capire.products-Categories.csv diff --git a/packages/products-service/tests/postman.json b/_packages/products-service/tests/postman.json similarity index 100% rename from packages/products-service/tests/postman.json rename to _packages/products-service/tests/postman.json diff --git a/packages/users-service/index.cds b/_packages/users-service/index.cds similarity index 100% rename from packages/users-service/index.cds rename to _packages/users-service/index.cds diff --git a/packages/users-service/package.json b/_packages/users-service/package.json similarity index 100% rename from packages/users-service/package.json rename to _packages/users-service/package.json diff --git a/packages/users-service/srv/services.cds b/_packages/users-service/srv/services.cds similarity index 100% rename from packages/users-service/srv/services.cds rename to _packages/users-service/srv/services.cds diff --git a/bookshop/db/data/sap.capire.bookshop-Genres.csv b/bookshop/db/data/sap.capire.bookshop-Genres.csv new file mode 100644 index 00000000..08435ca9 --- /dev/null +++ b/bookshop/db/data/sap.capire.bookshop-Genres.csv @@ -0,0 +1,16 @@ +ID;parent_ID;name +10;;Fiction +11;10;Drama +12;10;Poetry +13;10;Fantasy +14;10;Science Fiction +15;10;Romance +16;10;Mystery +17;10;Thriller +18;10;Dystopia +19;10;Fairy Tale +20;;Non-Fiction +21;20;Biography +22;20;Autobiography +23;20;Essay +24;20;Speech diff --git a/bookshop/db/schema.cds b/bookshop/db/schema.cds index e0e587be..bb428f1d 100644 --- a/bookshop/db/schema.cds +++ b/bookshop/db/schema.cds @@ -1,11 +1,12 @@ namespace sap.capire.bookshop; -using { Currency, managed, cuid } from '@sap/cds/common'; +using { Currency, managed, cuid, sap } from '@sap/cds/common'; entity Books : managed { key ID : Integer; title : localized String(111); descr : localized String(1111); author : Association to Authors; + genre : Association to Genres; stock : Integer; price : Decimal(9,2); currency : Currency; @@ -21,6 +22,12 @@ entity Authors : managed { books : Association to many Books on books.author = $self; } +entity Genres : sap.common.CodeList { + key ID : Integer; + parent : Association to Genres; + children : Composition of many Genres on children.parent = $self; +} + entity Orders : cuid, managed { OrderNo : String @title:'Order Number'; //> readable key Items : Composition of many OrderItems on Items.parent = $self; diff --git a/bookshop/package.json b/bookshop/package.json index d8588d4b..e874e8df 100644 --- a/bookshop/package.json +++ b/bookshop/package.json @@ -1,16 +1,17 @@ { - "name": "@sap/capire-bookshop", + "name": "@capire/bookshop", "version": "1.0.0", "description": "A simple bookshop application, build in a self-contained all-in-one fashion, i.e. w/o reusing other packages.", "license": "SAP SAMPLE CODE LICENSE", "dependencies": { - "@sap/capire-common": "*", + "@capire/common": "*", "@sap/cds": "*", "express": "*" }, "scripts": { "start": "cds run --in-memory?", - "watch": "cds watch" + "watch": "cds watch", + "test:genres": "cds serve test/genres --in-memory" }, "cds": { "requires": { diff --git a/bookshop/test/genres.cds b/bookshop/test/genres.cds new file mode 100644 index 00000000..a9347153 --- /dev/null +++ b/bookshop/test/genres.cds @@ -0,0 +1,4 @@ +using { sap.capire.bookshop as my } from '../db/schema'; +service TestService { + entity Genres as projection on my.Genres; +} diff --git a/bookshop/test/genres.http b/bookshop/test/genres.http new file mode 100644 index 00000000..9d85a472 --- /dev/null +++ b/bookshop/test/genres.http @@ -0,0 +1,38 @@ +################################################# +# +# Genres +# + +GET http://localhost:4004/test/Genres? +### + +GET http://localhost:4004/test/Genres? +&$filter=parent_ID eq null&$select=name +&$expand=children($select=name) +### + +POST http://localhost:4004/test/Genres? +Content-Type: application/json + +{ "ID":100, "name":"Some Sample Genres...", "children":[ + { "ID":101, "name":"Cat", "children":[ + { "ID":102, "name":"Kitty", "children":[ + { "ID":103, "name":"Kitty Cat", "children":[ + { "ID":104, "name":"Aristocat" } ]}, + { "ID":105, "name":"Kitty Bat" } ]}, + { "ID":106, "name":"Catwoman", "children":[ + { "ID":107, "name":"Catalina" } ]} ]}, + { "ID":108, "name":"Catweazle" } +]} +### + +GET http://localhost:4004/test/Genres(100)? +# &$expand=children +# &$expand=children($expand=children($expand=children($expand=children))) +### + +DELETE http://localhost:4004/test/Genres(103) +### + +DELETE http://localhost:4004/test/Genres(100) +### diff --git a/bookshop/tests/bookshop.http b/bookshop/test/requests.http similarity index 100% rename from bookshop/tests/bookshop.http rename to bookshop/test/requests.http diff --git a/bookshop/tests/orders.http b/bookshop/tests/orders.http deleted file mode 100644 index a0f72d1c..00000000 --- a/bookshop/tests/orders.http +++ /dev/null @@ -1,18 +0,0 @@ - -### List Books with their current stocks -GET http://localhost:4004/admin/Books?$select=ID,stock - -### List all Orders -GET http://localhost:4004/admin/Orders? -&$expand=Items - -### Submit Orders -POST http://localhost:4004/browse/Orders -Content-Type: application/json - -{ "OrderNo":"2019-09...", "Items":[ - { "book_ID":201, "amount":5 }, - { "book_ID":207, "amount":3 } -]} - -# Sending this three times should result in a 409: 5 exceeds stock for book #201 \ No newline at end of file diff --git a/common/package.json b/common/package.json index ec5c34f7..8cb5b2bc 100644 --- a/common/package.json +++ b/common/package.json @@ -1,5 +1,5 @@ { - "name": "@sap/capire-common", + "name": "@capire/common", "version": "1.0.0", "description": "A reuse package providing common domain models and services for common data.", "repository": "https://github.com/SAP-samples/cloud-cap-samples.git", diff --git a/fiori/app/admin/fiori-service.cds b/fiori/app/admin/fiori-service.cds index dbb7f581..55d1b36b 100644 --- a/fiori/app/admin/fiori-service.cds +++ b/fiori/app/admin/fiori-service.cds @@ -1,13 +1,15 @@ -using AdminService from '@sap/capire-bookshop/srv/admin-service'; +using AdminService from '@capire/bookshop/srv/admin-service'; //////////////////////////////////////////////////////////////////////////// // // Books Object Page // + annotate AdminService.Books with @( UI: { Facets: [ {$Type: 'UI.ReferenceFacet', Label: '{i18n>General}', Target: '@UI.FieldGroup#General'}, + {$Type: 'UI.ReferenceFacet', Label: '{i18n>Translations}', Target: 'texts/@UI.LineItem'}, {$Type: 'UI.ReferenceFacet', Label: '{i18n>Details}', Target: '@UI.FieldGroup#Details'}, {$Type: 'UI.ReferenceFacet', Label: '{i18n>Admin}', Target: '@UI.FieldGroup#Admin'}, ], @@ -15,6 +17,7 @@ annotate AdminService.Books with @( Data: [ {Value: title}, {Value: author_ID}, + {Value: genre_ID}, {Value: descr}, ] }, @@ -35,3 +38,35 @@ annotate AdminService.Books with @( } } ); + + + +//////////////////////////////////////////////////////////// +// +// Draft for Localized Data +// + +annotate sap.capire.bookshop.Books with @fiori.draft.enabled; +annotate AdminService.Books with @odata.draft.enabled; + +annotate AdminService.Books_texts with @( + UI: { + Identification: [{Value:title}], + SelectionFields: [ locale, title ], + LineItem: [ + {Value: locale, Label: 'Locale'}, + {Value: title, Label: 'Title'}, + {Value: descr, Label: 'Description'}, + ] + } +); + +// Add Value Help for Locales +annotate AdminService.Books_texts { + locale @ValueList:{entity:'Languages',type:#fixed} +} +// In addition we need to expose Languages through AdminService +using { sap } from '@sap/cds/common'; +extend service AdminService { + entity Languages as projection on sap.common.Languages; +} diff --git a/fiori/app/browse/fiori-service.cds b/fiori/app/browse/fiori-service.cds index 712bca29..8f45518d 100644 --- a/fiori/app/browse/fiori-service.cds +++ b/fiori/app/browse/fiori-service.cds @@ -1,4 +1,4 @@ -using CatalogService from '@sap/capire-bookshop/srv/cat-service'; +using CatalogService from '@capire/bookshop/srv/cat-service'; //////////////////////////////////////////////////////////////////////////// // @@ -40,6 +40,7 @@ annotate CatalogService.Books with @( LineItem: [ {Value: title}, {Value: author, Label:'{i18n>Author}'}, + {Value: genre.name}, {Value: price}, {Value: currency.symbol, Label:' '}, ] diff --git a/fiori/app/common.cds b/fiori/app/common.cds index d82ed16b..ab1fdd7d 100644 --- a/fiori/app/common.cds +++ b/fiori/app/common.cds @@ -2,7 +2,7 @@ Common Annotations shared by all apps */ -using { sap.capire.bookshop as my } from '@sap/capire-bookshop/db/schema'; +using { sap.capire.bookshop as my } from '@capire/bookshop/db/schema'; //////////////////////////////////////////////////////////////////////////// @@ -17,6 +17,7 @@ annotate my.Books with @( {Value: ID}, {Value: title}, {Value: author.name, Label:'{i18n>Author}'}, + {Value: genre.name}, {Value: stock}, {Value: price}, {Value: currency.symbol, Label:' '}, @@ -57,12 +58,16 @@ annotate my.Books with @( annotate my.Books with { ID @title:'{i18n>ID}' @UI.HiddenFilter; title @title:'{i18n>Title}'; + genre @title:'{i18n>Genre}'; author @title:'{i18n>AuthorID}'; price @title:'{i18n>Price}'; stock @title:'{i18n>Stock}'; descr @UI.MultiLineText; } +annotate my.Genres with { + name @title: '{i18n>Genre}'; +} //////////////////////////////////////////////////////////////////////////// // diff --git a/fiori/app/index.cds b/fiori/app/index.cds index b457f478..379e55ab 100644 --- a/fiori/app/index.cds +++ b/fiori/app/index.cds @@ -7,4 +7,4 @@ using from './browse/fiori-service'; using from './orders/fiori-service'; using from './common'; -using from '@sap/capire-common'; +using from '@capire/common'; diff --git a/fiori/app/orders/fiori-service.cds b/fiori/app/orders/fiori-service.cds index 3733aa18..44612ee5 100644 --- a/fiori/app/orders/fiori-service.cds +++ b/fiori/app/orders/fiori-service.cds @@ -1,4 +1,4 @@ -using AdminService from '@sap/capire-bookshop/srv/admin-service'; +using AdminService from '@capire/bookshop/srv/admin-service'; annotate AdminService.Books with { price @Common.FieldControl: #ReadOnly; diff --git a/fiori/db/schema.cds b/fiori/db/schema.cds new file mode 100644 index 00000000..2a82f52e --- /dev/null +++ b/fiori/db/schema.cds @@ -0,0 +1,3 @@ +// Proxy for importing schema from bookshop sample +using from '@capire/bookshop/db/schema'; +namespace sap.capire.bookshop; diff --git a/fiori/package.json b/fiori/package.json index 950e0fc2..681e4551 100644 --- a/fiori/package.json +++ b/fiori/package.json @@ -1,11 +1,12 @@ { - "name": "@sap/capire-fiori", + "name": "@capire/fiori", "version": "1.0.0", "description": "A simple bookshop application, build in a self-contained all-in-one fashion, i.e. w/o reusing other packages.", "license": "SAP SAMPLE CODE LICENSE", "dependencies": { - "@sap/capire-bookshop": "*", - "@sap/capire-common": "*", + "@capire/bookshop": "*", + "@capire/genres": "*", + "@capire/common": "*", "@sap/cds": "*", "express": "*" }, diff --git a/fiori/srv/admin-service.cds b/fiori/srv/admin-service.cds new file mode 100644 index 00000000..fceb9936 --- /dev/null +++ b/fiori/srv/admin-service.cds @@ -0,0 +1,5 @@ +// Proxy for importing services from bookshop sample +using from '@capire/bookshop/srv/admin-service'; +using from '@capire/bookshop/srv/cat-service'; + +annotate AdminService with @impl:'srv/admin-service.js'; diff --git a/fiori/srv/admin-service.js b/fiori/srv/admin-service.js new file mode 100644 index 00000000..e8853182 --- /dev/null +++ b/fiori/srv/admin-service.js @@ -0,0 +1,8 @@ +const cds = require('@sap/cds') + +module.exports = cds.service.impl (async function() { + const {Books} = cds.entities + const {ID} = await SELECT.one.from(Books).columns('max(ID) as ID') + let newID = ID - ID % 100 + 100 + this.before ('NEW','Books', req => req.data.ID = ++newID) +}) diff --git a/package.json b/package.json index e0d3a140..8495b2c0 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@sap/capire-samples", + "name": "@capire/samples", "description": "The umbrella project for all samples to easily setup for local development and tests.", "repository": "https://github.com/SAP-samples/cloud-cap-samples.git", "author": "daniel.hutzel@sap.com", @@ -8,8 +8,9 @@ "bookshop": "cds watch bookshop" }, "dependencies": { - "@sap/capire-bookshop": "./bookshop", - "@sap/capire-common": "./common" + "@capire/bookshop": "./bookshop", + "@capire/genres": "./genres", + "@capire/common": "./common" }, "--add-these-to-devDependencies-for-tests": { "@types/jest": "*", diff --git a/packages/reviews-service/db/schema.cds b/reviews/db/schema.cds similarity index 100% rename from packages/reviews-service/db/schema.cds rename to reviews/db/schema.cds diff --git a/packages/reviews-service/index.cds b/reviews/index.cds similarity index 100% rename from packages/reviews-service/index.cds rename to reviews/index.cds diff --git a/packages/reviews-service/package.json b/reviews/package.json similarity index 100% rename from packages/reviews-service/package.json rename to reviews/package.json diff --git a/packages/reviews-service/srv/reviews-service.cds b/reviews/srv/reviews-service.cds similarity index 100% rename from packages/reviews-service/srv/reviews-service.cds rename to reviews/srv/reviews-service.cds diff --git a/packages/reviews-service/srv/reviews-service.js b/reviews/srv/reviews-service.js similarity index 100% rename from packages/reviews-service/srv/reviews-service.js rename to reviews/srv/reviews-service.js diff --git a/packages/reviews-service/tests/messaging.test.js b/reviews/tests/messaging.test.js similarity index 100% rename from packages/reviews-service/tests/messaging.test.js rename to reviews/tests/messaging.test.js