UNPKG

n8n-nodes-espocrm

Version:

n8n Community Node for EspoCRM

88 lines (87 loc) 3.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.executeOperation = executeOperation; const n8n_workflow_1 = require("n8n-workflow"); const AccountOperations_1 = require("./AccountOperations"); const ContactOperations_1 = require("./ContactOperations"); const LeadOperations_1 = require("./LeadOperations"); const OpportunityOperations_1 = require("./OpportunityOperations"); async function executeOperation() { const items = this.getInputData(); const returnData = []; for (let i = 0; i < items.length; i++) { try { const resource = this.getNodeParameter('resource', i); let operation; switch (resource) { case 'account': operation = new AccountOperations_1.AccountOperations(this); break; case 'contact': operation = new ContactOperations_1.ContactOperations(this); break; case 'lead': operation = new LeadOperations_1.LeadOperations(this); break; case 'opportunity': operation = new OpportunityOperations_1.OpportunityOperations(this); break; default: throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown resource: ${resource}`); } const result = await operation.execute(i); // Result Processing für verschiedene API Responses if (result && typeof result === 'object') { if (result.list && Array.isArray(result.list)) { // EspoCRM List Response result.list.forEach((item) => { returnData.push({ json: item, pairedItem: { item: i } }); }); } else if (Array.isArray(result)) { // Direct Array Response result.forEach((item) => { returnData.push({ json: item, pairedItem: { item: i } }); }); } else { // Single Object Response returnData.push({ json: result, pairedItem: { item: i } }); } } else { // Fallback für andere Response Types returnData.push({ json: { result }, pairedItem: { item: i } }); } } catch (error) { // Type-safe Error Handling const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred'; if (this.continueOnFail()) { returnData.push({ json: { error: errorMessage }, pairedItem: { item: i } }); } else { if (error instanceof n8n_workflow_1.NodeOperationError) { throw error; } throw new n8n_workflow_1.NodeOperationError(this.getNode(), errorMessage); } } } return [returnData]; }