UNPKG

@alexssmusica/emissao-nota-fiscal

Version:
40 lines (39 loc) 1.67 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeSoapRequest = void 0; const https_1 = __importDefault(require("https")); const node_fetch_1 = __importDefault(require("node-fetch")); const xml_1 = require("../xml"); const build_soap_envelope_1 = require("./build-soap-envelope"); async function makeSoapRequest({ empresa, soap, xml, webProxy, cUf }) { const body = (0, build_soap_envelope_1.buildSoapEnvelope)(xml, soap.method); const options = { method: 'POST', headers: { 'Content-Type': soap.contentType, SOAPAction: soap.action }, agent: new https_1.default.Agent({ rejectUnauthorized: false, cert: empresa.pem, key: empresa.key, passphrase: empresa.password }), body }; const res = await (0, node_fetch_1.default)(soap.url, options); const xmlRecebido = await res.text(); const retorno = await (0, xml_1.deserializeXml)(xmlRecebido, { explicitArray: false }); const objectEnvelope = Object.values(retorno)[0]; const objectBody = Object.values(objectEnvelope)[1] !== '' ? Object.values(objectEnvelope)[1] : Object.values(objectEnvelope)[2]; const nfeResultMsg = cUf === '41' ? Object.values(objectBody)[1] : Object.values(objectBody)[0]; return { xml_enviado: xml, xml_recebido: xmlRecebido, data: nfeResultMsg }; } exports.makeSoapRequest = makeSoapRequest;