maxipago-sdk-js
Version:
SDK Node.js for maxiPago! gateway
53 lines (52 loc) • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatResponse = exports.convertResponse = void 0;
var xml_js_1 = require("xml-js");
var isDebug = process.env.NODE_ENV === 'development';
exports.convertResponse = function (value, parentElement) {
try {
var keyNo = Object.keys(parentElement._parent).length;
var keyName = Object.keys(parentElement._parent)[keyNo - 1];
parentElement._parent[keyName] = nativeType(value);
}
catch (e) {
console.log(e);
}
};
exports.formatResponse = function (xml, options) {
xml = xml.replace('rapi-response', 'response');
xml = xml.replace('rapi-response', 'response');
xml = xml.replace('api-response', 'response');
xml = xml.replace('api-response', 'response');
xml = xml.replace('transaction-response', 'response');
xml = xml.replace('transaction-response', 'response');
var jsonResponse = JSON.parse(xml_js_1.xml2json(xml, options));
if (isDebug) {
console.log('development mode');
console.log(xml);
}
else {
console.log('production mode');
console.log(xml);
}
if (typeof jsonResponse.response !== 'undefined') {
return jsonResponse.response;
}
else {
return JSON.parse(xml_js_1.xml2json(xml, options));
}
};
function nativeType(value) {
var nValue = Number(value);
if (!isNaN(nValue)) {
return nValue;
}
var bValue = value.toLowerCase();
if (bValue === 'true') {
return true;
}
else if (bValue === 'false') {
return false;
}
return value;
}