n8n-nodes-fatture-in-cloud
Version:
n8n community node for Fatture in Cloud integration using the official TypeScript SDK
67 lines • 3.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EInvoicesModule = void 0;
const n8n_workflow_1 = require("n8n-workflow");
const fattureincloud_ts_sdk_1 = require("@fattureincloud/fattureincloud-ts-sdk");
const EInvoicesResource_1 = require("../resources/EInvoicesResource");
class EInvoicesModule {
constructor() {
this.resource = EInvoicesResource_1.EInvoicesResource;
}
async execute(context, operation, itemIndex) {
var _a;
const credentials = await context.getCredentials('fattureInCloudOAuth2Api');
let accessToken;
if ((_a = credentials.oauthTokenData) === null || _a === void 0 ? void 0 : _a.access_token) {
accessToken = credentials.oauthTokenData.access_token;
}
else if (credentials.access_token) {
accessToken = credentials.access_token;
}
else if (credentials.accessToken) {
accessToken = credentials.accessToken;
}
else {
throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Access token not found in credentials. Please re-authenticate your Fatture in Cloud connection.', { itemIndex });
}
const config = new fattureincloud_ts_sdk_1.Configuration({
accessToken,
});
const eInvoicesApi = new fattureincloud_ts_sdk_1.IssuedEInvoicesApi(config);
const companyId = context.getNodeParameter('companyId', itemIndex);
const documentId = context.getNodeParameter('documentId', itemIndex);
let responseData;
switch (operation) {
case 'send':
const withholdingTaxCausal = context.getNodeParameter('withholdingTaxCausal', itemIndex, '');
const sendData = {};
if (withholdingTaxCausal.trim()) {
sendData.withholding_tax_causal = withholdingTaxCausal.trim();
}
const sendRequest = {
data: sendData,
};
const sendResponse = await eInvoicesApi.sendEInvoice(companyId, documentId, sendRequest);
responseData = sendResponse.data;
break;
case 'verifyXml':
const verifyResponse = await eInvoicesApi.verifyEInvoiceXml(companyId, documentId);
responseData = verifyResponse.data;
break;
case 'getXml':
const includeAttachment = context.getNodeParameter('includeAttachment', itemIndex, false);
const xmlResponse = await eInvoicesApi.getEInvoiceXml(companyId, documentId, includeAttachment);
responseData = xmlResponse.data;
break;
case 'getRejectionReason':
const rejectionResponse = await eInvoicesApi.getEInvoiceRejectionReason(companyId, documentId);
responseData = rejectionResponse.data;
break;
default:
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Unknown operation: ${operation}`, { itemIndex });
}
return responseData;
}
}
exports.EInvoicesModule = EInvoicesModule;
//# sourceMappingURL=EInvoicesModule.js.map