UNPKG

n8n-nodes-fatture-in-cloud

Version:

n8n community node for Fatture in Cloud integration using the official TypeScript SDK

87 lines 4.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SuppliersModule = void 0; const fattureincloud_ts_sdk_1 = require("@fattureincloud/fattureincloud-ts-sdk"); const SuppliersResource_1 = require("../resources/SuppliersResource"); class SuppliersModule { constructor() { this.resource = SuppliersResource_1.SuppliersResource; } 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 Error('Access token not found in credentials. Please re-authenticate your Fatture in Cloud connection.'); } const config = new fattureincloud_ts_sdk_1.Configuration({ accessToken, }); const suppliersApi = new fattureincloud_ts_sdk_1.SuppliersApi(config); const companyId = context.getNodeParameter('companyId', itemIndex); let responseData; switch (operation) { case 'create': const supplierName = context.getNodeParameter('supplierName', itemIndex); const additionalFields = context.getNodeParameter('additionalFields', itemIndex, {}); const supplier = { name: supplierName, ...additionalFields, }; const createRequest = { data: supplier }; const createResponse = await suppliersApi.createSupplier(companyId, createRequest); responseData = createResponse.data; break; case 'get': const supplierId = context.getNodeParameter('supplierId', itemIndex); const getResponse = await suppliersApi.getSupplier(companyId, supplierId); responseData = getResponse.data; break; case 'getAll': const returnAll = context.getNodeParameter('returnAll', itemIndex, false); const limit = context.getNodeParameter('limit', itemIndex, 50); const listResponse = await suppliersApi.listSuppliers(companyId); let suppliers = listResponse.data.data || []; if (!returnAll && suppliers.length > limit) { suppliers = suppliers.slice(0, limit); } responseData = suppliers; break; case 'update': const updateSupplierId = context.getNodeParameter('supplierId', itemIndex); const updateSupplierName = context.getNodeParameter('supplierName', itemIndex); const updateAdditionalFields = context.getNodeParameter('additionalFields', itemIndex, {}); const updateSupplier = { name: updateSupplierName, ...updateAdditionalFields, }; const updateRequest = { data: updateSupplier }; const updateResponse = await suppliersApi.modifySupplier(companyId, updateSupplierId, updateRequest); responseData = updateResponse.data; break; case 'delete': const deleteSupplierId = context.getNodeParameter('supplierId', itemIndex); await suppliersApi.deleteSupplier(companyId, deleteSupplierId); responseData = { success: true, deleted: deleteSupplierId }; break; default: throw new Error(`Unknown operation: ${operation}`); } return responseData; } } exports.SuppliersModule = SuppliersModule; //# sourceMappingURL=SuppliersModule.js.map