rastreio
Version:
saiba onde estão suas encomendas
56 lines (41 loc) • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = rastreio;
var _x2js = require('x2js');
var _x2js2 = _interopRequireDefault(_x2js);
var _request = require('./request');
var _xml2 = require('./formato/xml');
var _json2 = require('./formato/json');
var _humanize2 = require('./formato/humanize');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function rastreio() {
var objetos = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
var opcoes = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
opcoes.resultado = opcoes.resultado.toUpperCase();
var resultado = ['U', 'T', 'ULTIMO', 'TODOS'].indexOf(opcoes.resultado);
var formato = ['xml', 'json', 'humanize'].indexOf(opcoes.formato);
var fun = { xml: _xml2.xml, json: _json2.json, humanize: _humanize2.humanize };
var pms = new Promise(function (resolve, reject) {
if (resultado < 0) {
reject(new TypeError('Esperado uma das opções u, t, todos ou ultimo como resultado', 'rastreio'));
}
if (formato < 0) {
reject(new TypeError('Esperado uma das opções xml, json ou humanize', 'rastreio'));
}
if (!Array.isArray(objetos)) {
reject(new TypeError('Esperado um array como primeiro argumento', 'rastreio'));
}
(0, _request.request)(objetos, opcoes.resultado).then(function (response) {
var x2js = new _x2js2.default();
var document = x2js.xml2js(response);
return document.Envelope.Body.buscaEventosListaResponse;
}).then(fun[opcoes.formato]).then(function (result) {
return resolve(result);
}).catch(function (err) {
reject(err);
});
});
return pms;
}