api-beep-onboarding
Version:
Oracle OCI FaaS for Api Beep Onboarding library
193 lines (156 loc) • 4.34 kB
JavaScript
/**
*
* 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;
}