diff --git a/bookshop/package.json b/bookshop/package.json index f2fb4210..1a52b592 100644 --- a/bookshop/package.json +++ b/bookshop/package.json @@ -21,6 +21,8 @@ }, "cds": { "requires": { + "extensibility": true, + "-toggles": true, "db": { "kind": "sql" } diff --git a/bookshop/srv/cat-service.js b/bookshop/srv/cat-service.js index 9fa85cca..57315634 100644 --- a/bookshop/srv/cat-service.js +++ b/bookshop/srv/cat-service.js @@ -1,13 +1,20 @@ const cds = require('@sap/cds') - -class CatalogService extends cds.ApplicationService { init(){ +class CatalogService extends cds.ApplicationService { async init(){ const { Books } = cds.entities ('sap.capire.bookshop') + const { ListOfBooks } = this.entities + + this.on('READ','ListOfBooks', ()=>{ + Error.stackTraceLimit = 22 + cds._debug = true + return SELECT.from (ListOfBooks) + }) // Reduce stock of ordered books if available stock suffices this.on ('submitOrder', async req => { const {book,quantity} = req.data if (quantity < 1) return req.reject (400,`quantity has to be 1 or more`) + cds._debug = true let b = await SELECT `stock` .from (Books,book) if (!b) return req.error (404,`Book #${book} doesn't exist`) let {stock} = b @@ -22,7 +29,8 @@ class CatalogService extends cds.ApplicationService { init(){ if (each.stock > 111) each.title += ` -- 11% discount!` }) - return super.init() + await super.init() + return }} module.exports = { CatalogService }