UNPKG

api-beep-onboarding

Version:

Oracle OCI FaaS for Api Beep Onboarding library

193 lines (156 loc) 4.34 kB
/** * * BeePay 2.023-2.024 - Oracle OCI FaaS for Api Beep Onboarding * Way4 WS runtime SOAP response errors * * Changes: * jlugo: 2024-apr-29. File creation */ /* RGVzYXJyb2xsYWRvIHBvciBKb25hdGhhbiBMdWdv */ import { WSSoapError } from "./soap-cli.js"; import { ADWError } from "./oci-adw.js"; /** * * @param {Number} code * @returns */ function message(code) { const msg = { 200: () => "OK", 400: () => "Bad Request Error", 500: () => "Web Services Error", 501: () => "Core Services Error", default: () => "Invalid http code" }; return (msg[code] || msg.default)(); } /** * Setup response code and code message for Contract/Division/Store/Device Level * * @param {Object} response * @param {Number} code - Http code message */ function setResponseCode(response, code) { response.code = code; response.status = message(code); } /** * * @param {Object} node - WS response node to check * @param {Object} response - Client/Contract/Store Level * @returns {boolean} - true: Response with errors. false: Ok */ export function checkWSClientCreateError(node, response) { //--- Way4 runtime Web Services kind of error if (node instanceof WSSoapError) { setResponseCode(response, 500); response.errors = [node.Error]; return true; } //--- Web Services object(s) creation kind of error if (!node.code) { setResponseCode(response, 400); response.errors = [...node.Errors, ...node.address.Errors]; return true; } setResponseCode(response, 200); return false; } /** * * @param {Object} node - WS response node to check * @param {Object} response - Division Level * @returns {boolean} */ export function checkWSDivisionCreateError(node, response) { if (node instanceof WSSoapError) { setResponseCode(response, 500); response.errors = [node.Error]; return true; } if (!node.contractNumber) { setResponseCode(response, 400); response.errors = [...node.Errors]; return true; } setResponseCode(response, 200); return false; } /** * * @param {Object} node - WS response node to check * @param {Object} response - Store Level * @returns {boolean} */ export function checkWSStoreCreateError(node, response) { if (node instanceof WSSoapError) { setResponseCode(response, 500); response.errors = [node.Error]; return true; } if (!node.merchantId) { setResponseCode(response, 400); response.errors = [...node.Errors]; return true; } setResponseCode(response, 200); return false; } /** * * @param {Object} node - WS response node to check * @param {Object} response - Device Level * @returns {boolean} */ export function checkWSDeviceCreateError(node, response) { if (node instanceof WSSoapError) { setResponseCode(response, 500); response.errors = [node.Error]; return true; } if (!node.terminalId) { setResponseCode(response, 400); response.errors = [...node.Errors]; return true; } setResponseCode(response, 200); return false; } /** * * @param {Object} node - WS response node to check * @param {Object} response - Store Level * @returns {boolean} */ export function checkWSGenericError(node, response) { if (node instanceof WSSoapError) { setResponseCode(response, 500); response.errors = [node.Error]; return true; } if (node.hasErrors) { setResponseCode(response, 400); let addr = []; if (node.address) { addr = [ ...node.address.Errors ]; } response.errors = [...node.Errors, ...addr ]; return true; } setResponseCode(response, 200); return false; } /** * Autonomous Dataware House database kind of error * @param {Object} node * @param {Object} response * @returns {Boolean} */ export function checkDatabaseError(node, response) { if (node instanceof ADWError) { setResponseCode(response, 501); response.errors = [ node.Error ]; return true; } return false; }