From 8197559065bcd381fabc1962bf30baf3770dce66 Mon Sep 17 00:00:00 2001 From: sjvans <30337871+sjvans@users.noreply.github.com> Date: Thu, 3 Feb 2022 18:04:10 +0100 Subject: [PATCH] fix: app crashes if SELECT results in null (#298) --- bookshop/srv/cat-service.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bookshop/srv/cat-service.js b/bookshop/srv/cat-service.js index a9c629c0..9fa85cca 100644 --- a/bookshop/srv/cat-service.js +++ b/bookshop/srv/cat-service.js @@ -8,7 +8,9 @@ class CatalogService extends cds.ApplicationService { init(){ this.on ('submitOrder', async req => { const {book,quantity} = req.data if (quantity < 1) return req.reject (400,`quantity has to be 1 or more`) - let {stock} = await SELECT `stock` .from (Books,book) + let b = await SELECT `stock` .from (Books,book) + if (!b) return req.error (404,`Book #${book} doesn't exist`) + let {stock} = b if (quantity > stock) return req.reject (409,`${quantity} exceeds stock for book #${book}`) await UPDATE (Books,book) .with ({ stock: stock -= quantity }) await this.emit ('OrderedBook', { book, quantity, buyer:req.user.id })