n8n-nodes-efibank
Version:
Nó personalizado para integração com as APIs Cobranças e Pix do Efi Bank, permitindo operações de pagamentos, recebimentos e gerenciamento de transações financeiras.
112 lines • 4.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.execute = void 0;
const cobService_1 = require("./services/cobService");
const cobvService_1 = require("./services/cobvService");
const paymentService_1 = require("./services/paymentService");
const managementService_1 = require("./services/managementService");
const locationService_1 = require("./services/locationService");
const batchService_1 = require("./services/batchService");
const splitService_1 = require("./services/splitService");
const webhooksService_1 = require("./services/webhooksService");
const exclusivesService_1 = require("./services/exclusivesService");
const automaticService_1 = require("./services/automaticService");
async function execute(endpoint, i) {
const returnData = [];
const transactionType = this.getNodeParameter('transactionType', i);
try {
let response;
switch (transactionType) {
case 'cob':
response = await cobService_1.cobService.call(this, endpoint, i);
break;
case 'cobv':
response = await cobvService_1.cobvService.call(this, endpoint, i);
break;
case 'automatic':
response = await automaticService_1.automaticService.call(this, endpoint, i);
break;
case 'payment':
response = await paymentService_1.paymentService.call(this, endpoint, i);
break;
case 'management':
response = await managementService_1.managementService.call(this, endpoint, i);
break;
case 'location':
response = await locationService_1.locationService.call(this, endpoint, i);
break;
case 'batch':
response = await batchService_1.batchService.call(this, endpoint, i);
break;
case 'split':
response = await splitService_1.splitService.call(this, endpoint, i);
break;
case 'webhooks':
response = await webhooksService_1.webhooksService.call(this, endpoint, i);
break;
case 'exclusives':
response = await exclusivesService_1.exclusivesService.call(this, endpoint, i);
break;
default:
throw new Error(`Erro: '${transactionType}' não é um tipo de transação válida.`);
}
returnData.push({ json: response });
}
catch (error) {
this.logger.error('Erro ao executar a requisição:', error);
if (error.isAxiosError) {
if (error.response) {
const responseData = error.response.data;
let errorMessage = 'Erro na API';
let errorDetails = {};
if (typeof responseData === 'object') {
errorMessage = responseData.message ||
responseData.error_description ||
responseData.error ||
`Error ${error.response.status}: ${error.response.statusText}`;
errorDetails = responseData;
}
else if (typeof responseData === 'string') {
errorMessage = responseData;
try {
errorDetails = JSON.parse(responseData);
}
catch (e) {
errorDetails = { rawResponse: responseData };
}
}
this.logger.error('Erro detalhado da API:', {
statusCode: error.response.status,
message: errorMessage,
details: JSON.stringify(errorDetails, null, 2)
});
returnData.push({
json: {
success: false,
status: error.response.status,
statusText: error.response.statusText,
message: errorMessage,
details: errorDetails
},
});
}
else {
this.logger.error('Erro na requisição:', error.message);
returnData.push({ json: { error: error.message } });
}
}
else {
this.logger.error('Erro desconhecido:', error.message);
returnData.push({ json: { error: error.message } });
}
if (this.continueOnFail()) {
return returnData;
}
else {
throw error;
}
}
return returnData;
}
exports.execute = execute;
//# sourceMappingURL=Services.js.map