ih-black-lion
Version:
State handler for Arus projects
46 lines (37 loc) • 967 B
JavaScript
import { isArrayLike as isArray, mapObj } from 'ramda';
export default class Fault {
constructor(faultObj) {
const responseName = Object.keys(faultObj)[0];
let messages = {};
let length = 0;
/**
* Try:
* Tries to map the Fault normally
*
* Catch:
* Accounts for RESTListeningConnector Faults
*/
try {
const faultMsg = faultObj[responseName].sccFaultResp.detail.msgs.msg;
if (isArray(faultMsg)) {
messages = mapObj((message) => {
++length;
return message;
}, faultMsg);
} else {
++length;
messages['0'] = faultMsg;
}
this.responseName = responseName;
} catch (err) {
const msgObj = faultObj.html;
++length;
messages['0'] = {
descr: `${msgObj.head.title} - ${msgObj.body}`,
};
this.responseName = 'N/A';
}
messages.length = length;
this.faultMessages = messages;
}
}