n8n-nodes-fatture-in-cloud
Version:
n8n community node for Fatture in Cloud integration using the official TypeScript SDK
87 lines • 4.14 kB
JavaScript
;
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