From e27275d29a1c8bb67daeb9f604d83a3190a19498 Mon Sep 17 00:00:00 2001 From: D065023 Date: Mon, 16 Dec 2019 10:29:36 +0100 Subject: [PATCH] go to own database when remote system unavailable --- packages/bookshop/srv/admin-service.js | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/bookshop/srv/admin-service.js b/packages/bookshop/srv/admin-service.js index ae35329a..14f0121a 100644 --- a/packages/bookshop/srv/admin-service.js +++ b/packages/bookshop/srv/admin-service.js @@ -62,10 +62,12 @@ async function _readAddresses (req) { const ql = req.query.from(ShippingAddresses).where({ BusinessPartner }) try { - const result = await txExt.run(ql) - return result + return txExt.run(ql) } catch (e) { + // If external system is not available, use own replicated data console.error(e) + const tx = cds.transaction(req) + return tx.run(ql) } } @@ -85,7 +87,10 @@ async function _fillAddress (req) { const qlStatement = INSERT.into(ShippingAddresses).entries(response) await tx.run(qlStatement) } - } catch (e) {} + } catch (e) { + // If external system is not available and data was fetched + // using own replicated data, nothing needs to be done here. + } } } @@ -112,12 +117,15 @@ async function _reduceStock (req) { } } -function _checkMandatoryParams(req) { - if (!req.data.Items || !req.data.Items.length){ - return req.reject('Please order at least one item.') +function _checkMandatoryParams (req) { + if (!req.data.Items || !req.data.Items.length) { + return req.reject('Please order at least one item.') } if (!req.data.shippingAddress_AddressID) { - return req.reject('Please enter a valid shpping address.', 'shippingAddess_AddressID') + return req.reject( + 'Please enter a valid shpping address.', + 'shippingAddess_AddressID' + ) } }