n8n-nodes-fatture-in-cloud
Version:
n8n community node for Fatture in Cloud integration using the official TypeScript SDK
103 lines • 5.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.InfoModule = void 0;
const n8n_workflow_1 = require("n8n-workflow");
const fattureincloud_ts_sdk_1 = require("@fattureincloud/fattureincloud-ts-sdk");
const InfoResource_1 = require("../resources/InfoResource");
class InfoModule {
constructor() {
this.resource = InfoResource_1.InfoResource;
}
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 infoApi = new fattureincloud_ts_sdk_1.InfoApi(config);
const companyId = context.getNodeParameter('companyId', itemIndex);
let responseData;
switch (operation) {
case 'get':
const infoType = context.getNodeParameter('infoType', itemIndex);
const additionalFields = context.getNodeParameter('additionalFields', itemIndex, {});
switch (infoType) {
case 'archive_categories':
const archiveCategoriesResponse = await infoApi.listArchiveCategories(companyId);
responseData = archiveCategoriesResponse.data;
break;
case 'cities':
const postalCode = additionalFields.postalCode;
const city = additionalFields.city;
const citiesResponse = await infoApi.listCities(postalCode, city);
responseData = citiesResponse.data;
break;
case 'countries':
const countriesResponse = await infoApi.listCountries();
responseData = countriesResponse.data;
break;
case 'currencies':
const currenciesResponse = await infoApi.listCurrencies();
responseData = currenciesResponse.data;
break;
case 'languages':
const languagesResponse = await infoApi.listLanguages();
responseData = languagesResponse.data;
break;
case 'payment_accounts':
const paymentAccountsResponse = await infoApi.listPaymentAccounts(companyId, undefined);
responseData = paymentAccountsResponse.data;
break;
case 'payment_methods':
const paymentMethodsResponse = await infoApi.listPaymentMethods(companyId);
responseData = paymentMethodsResponse.data;
break;
case 'product_categories':
const productCategoriesResponse = await infoApi.listProductCategories(companyId, additionalFields.fields, additionalFields.fieldset);
responseData = productCategoriesResponse.data;
break;
case 'received_document_categories':
const receivedDocCategoriesResponse = await infoApi.listReceivedDocumentCategories(companyId);
responseData = receivedDocCategoriesResponse.data;
break;
case 'revenue_centers':
const revenueCentersResponse = await infoApi.listRevenueCenters(companyId);
responseData = revenueCentersResponse.data;
break;
case 'templates':
const templatesResponse = await infoApi.listTemplates();
responseData = templatesResponse.data;
break;
case 'units_of_measure':
const unitsResponse = await infoApi.listUnitsOfMeasure();
responseData = unitsResponse.data;
break;
case 'vat_types':
const vatTypesResponse = await infoApi.listVatTypes(companyId);
responseData = vatTypesResponse.data;
break;
default:
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Unknown info type: ${infoType}`, { itemIndex });
}
break;
default:
throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Unknown operation: ${operation}`, { itemIndex });
}
return responseData;
}
}
exports.InfoModule = InfoModule;
//# sourceMappingURL=InfoModule.js.map