envio-comprobantes-sri
Version:
Envia comprobantes electronicos al SRI (Ecuador). Recibe un objeto JSON. Lo convierte a XML, lo firma, lo envía al servicio web del SRI y devuelve la respuesta.
37 lines (36 loc) • 1.57 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WebServiceSRIError = void 0;
const xml_handler_1 = __importDefault(require("../Utils/xml-handler"));
function parseWebServiceResponse(response_xml, step, xml_envelope) {
const xml = new xml_handler_1.default(response_xml);
if (!xml.isXMLEnvelope())
throw new Error("Documento inválido (Debe ser un documento XML Envelope).");
if (xml.getTextValue("tipo") === "ERROR")
throw new WebServiceSRIError(xml.getTextValue("estado"), xml.childrenOf("mensajes").map(node => ({
additional_info: xml_handler_1.default.getTextValue(node, "informacionAdicional"),
code: xml_handler_1.default.getTextValue(node, "identificador"),
message: xml_handler_1.default.getTextValue(node, "mensaje")
})), step, response_xml, xml_envelope);
return xml;
}
exports.default = parseWebServiceResponse;
class WebServiceSRIError extends Error {
document_status;
error_list;
step;
raw_response;
raw_request;
constructor(document_status, error_list, step, raw_response, raw_request) {
super(error_list[0]?.message || "");
this.document_status = document_status;
this.error_list = error_list;
this.step = step;
this.raw_response = raw_response;
this.raw_request = raw_request;
}
}
exports.WebServiceSRIError = WebServiceSRIError;