UNPKG

n8n-nodes-fatture-in-cloud

Version:

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

101 lines 5.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WebhooksModule = void 0; const n8n_workflow_1 = require("n8n-workflow"); const fattureincloud_ts_sdk_1 = require("@fattureincloud/fattureincloud-ts-sdk"); const WebhooksResource_1 = require("../resources/WebhooksResource"); class WebhooksModule { constructor() { this.resource = WebhooksResource_1.WebhooksResource; } 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 webhooksApi = new fattureincloud_ts_sdk_1.WebhooksApi(config); const companyId = context.getNodeParameter('companyId', itemIndex); let responseData; switch (operation) { case 'create': const sink = context.getNodeParameter('sink', itemIndex); const verified = context.getNodeParameter('verified', itemIndex, false); const types = context.getNodeParameter('types', itemIndex, ['created']); if (!sink || sink.trim() === '') { throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Sink URL is required.', { itemIndex }); } const webhookData = { sink: sink.trim(), verified, types, }; const createRequest = { data: webhookData, }; const createResponse = await webhooksApi.createWebhooksSubscription(companyId, createRequest); responseData = createResponse.data; break; case 'get': const subscriptionId = context.getNodeParameter('subscriptionId', itemIndex); if (!subscriptionId) { throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Subscription ID is required.', { itemIndex }); } const getResponse = await webhooksApi.getWebhooksSubscription(companyId, subscriptionId); responseData = getResponse.data; break; case 'list': const listResponse = await webhooksApi.listWebhooksSubscriptions(companyId); responseData = listResponse.data; break; case 'update': const updateSubscriptionId = context.getNodeParameter('subscriptionId', itemIndex); const updateSink = context.getNodeParameter('sink', itemIndex); const updateVerified = context.getNodeParameter('verified', itemIndex, false); const updateTypes = context.getNodeParameter('types', itemIndex, ['created']); if (!updateSubscriptionId) { throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Subscription ID is required.', { itemIndex }); } if (!updateSink || updateSink.trim() === '') { throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Sink URL is required.', { itemIndex }); } const updateWebhookData = { sink: updateSink.trim(), verified: updateVerified, types: updateTypes, }; const modifyRequest = { data: updateWebhookData, }; const updateResponse = await webhooksApi.modifyWebhooksSubscription(companyId, updateSubscriptionId, modifyRequest); responseData = updateResponse.data; break; case 'delete': const deleteSubscriptionId = context.getNodeParameter('subscriptionId', itemIndex); if (!deleteSubscriptionId) { throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Subscription ID is required.', { itemIndex }); } await webhooksApi.deleteWebhooksSubscription(companyId, deleteSubscriptionId); responseData = { success: true, message: 'Webhook subscription deleted successfully' }; break; default: throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Unknown operation: ${operation}`, { itemIndex }); } return responseData; } } exports.WebhooksModule = WebhooksModule; //# sourceMappingURL=WebhooksModule.js.map