UNPKG

n8n-nodes-everest-tms

Version:

Everest TMS n8n integration

311 lines 14.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Everest = void 0; const MissionDescription_1 = require("./descriptions/MissionDescription"); const ClientDescription_1 = require("./descriptions/ClientDescription"); const AgentDescription_1 = require("./descriptions/AgentDescription"); const GeneralDescription_1 = require("./descriptions/GeneralDescription"); const RouteDescription_1 = require("./descriptions/RouteDescription"); const InvoiceDescription_1 = require("./descriptions/InvoiceDescription"); const ContactDescription_1 = require("./descriptions/ContactDescription"); const WebhookDescription_1 = require("./descriptions/WebhookDescription"); const NotificationDescription_1 = require("./descriptions/NotificationDescription"); const AlertDescription_1 = require("./descriptions/AlertDescription"); const WalterDescription_1 = require("./descriptions/WalterDescription"); const ExportDescription_1 = require("./descriptions/ExportDescription"); // Import operation handlers const GeneralOperations_1 = require("./operations/GeneralOperations"); const MissionOperations_1 = require("./operations/MissionOperations"); const ClientOperations_1 = require("./operations/ClientOperations"); const AgentOperations_1 = require("./operations/AgentOperations"); const InvoiceOperations_1 = require("./operations/InvoiceOperations"); const ContactOperations_1 = require("./operations/ContactOperations"); const WebhookOperations_1 = require("./operations/WebhookOperations"); const RouteOperations_1 = require("./operations/RouteOperations"); const NotificationOperations_1 = require("./operations/NotificationOperations"); const AlertOperations_1 = require("./operations/AlertOperations"); const WalterOperations_1 = require("./operations/WalterOperations"); const ExportOperations_1 = require("./operations/ExportOperations"); // Import generic functions const GenericFunctions_1 = require("./GenericFunctions"); class Everest { constructor() { this.description = { displayName: 'Everest', name: 'everest', icon: 'file:everest.svg', group: ['transform'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', description: 'Interact with Everest TMS (Transport Management System)', defaults: { name: 'Everest', }, usableAsTool: true, inputs: [{ displayName: 'Main', type: "main" /* NodeConnectionType.Main */ }], outputs: [{ displayName: 'Main', type: "main" /* NodeConnectionType.Main */ }], credentials: [ { name: 'everestApi', required: true, }, ], properties: [ { displayName: 'Resource', name: 'resource', type: 'options', noDataExpression: true, options: [ { name: 'General', value: 'general', }, { name: 'Mission', value: 'mission', }, { name: 'Client', value: 'client', }, { name: 'Agent', value: 'agent', }, { name: 'Invoice', value: 'invoice', }, { name: 'Contact', value: 'contact', }, { name: 'Alert', value: 'alert', }, { name: 'Walter', value: 'walter', }, { name: 'Notification', value: 'notification', }, { name: 'Webhook', value: 'webhook', }, { name: 'Route', value: 'route', }, { name: 'Export', value: 'export', }, ], default: 'mission', }, // General Operations ...GeneralDescription_1.generalOperations, ...GeneralDescription_1.generalFields, // Mission Operations ...MissionDescription_1.missionOperations, ...MissionDescription_1.missionFields, // Client Operations ...ClientDescription_1.clientOperations, ...ClientDescription_1.clientFields, // Agent Operations ...AgentDescription_1.agentOperations, ...AgentDescription_1.agentFields, // Invoice Operations ...InvoiceDescription_1.invoiceOperations, ...InvoiceDescription_1.invoiceFields, // Contact Operations ...ContactDescription_1.contactOperations, ...ContactDescription_1.contactFields, // Alert Operations ...AlertDescription_1.alertOperations, ...AlertDescription_1.alertFields, // Walter Operations ...WalterDescription_1.walterOperations, ...WalterDescription_1.walterFields, // Notification Operations ...NotificationDescription_1.notificationOperations, ...NotificationDescription_1.notificationFields, // Webhook Operations ...WebhookDescription_1.webhookOperations, ...WebhookDescription_1.webhookFields, // Route Operations ...RouteDescription_1.routeOperations, ...RouteDescription_1.routeFields, // Export Operations ...ExportDescription_1.exportOperations, ...ExportDescription_1.exportFields, ], }; this.methods = { loadOptions: { // Get Services async getServices() { try { const response = await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/services'); const services = response.services || []; return services.map((service) => ({ name: service.title || service.name || `Service ${service.id}`, value: service.id, description: service.description || undefined, })); } catch (error) { return []; } }, // Get Skills async getSkills() { try { const response = await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/skills'); const skills = response.skills || []; return skills.map((skill) => ({ name: skill.name || `Skill ${skill.id}`, value: skill.id, description: undefined, })); } catch (error) { return []; } }, // Get Statuses async getStatuses() { try { const response = await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/statuses'); const statuses = response.statuses || {}; const statusOptions = []; // Convert the statuses object to an array of options for (const [statusSlug, statusData] of Object.entries(statuses)) { const status = statusData; statusOptions.push({ name: status.name || statusSlug, value: statusSlug, description: undefined, }); } return statusOptions; } catch (error) { return []; } }, // Get Clients async getClients() { try { const response = await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/clients'); const clients = response.clients || []; return clients.map((client) => ({ name: `${client.first_name || ''} ${client.last_name || ''}`.trim() || client.email || `Client ${client.id}`, value: client.id, description: client.email || undefined, })); } catch (error) { return []; } }, // Get Agents async getAgents() { try { const response = await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/agents'); const agents = response.agents || []; return agents.map((agent) => ({ name: `${agent.first_name || ''} ${agent.last_name || ''}`.trim() || agent.email || `Agent ${agent.id}`, value: agent.id, description: agent.email || undefined, })); } catch (error) { return []; } }, // Get Establishments async getEstablishments() { try { const response = await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/establishments'); const establishments = response.establishments || []; return establishments.map((establishment) => ({ name: establishment.name || `Establishment ${establishment.id}`, value: establishment.id, })); } catch (error) { return []; } }, }, }; } async execute() { const items = this.getInputData(); const returnData = []; const resource = this.getNodeParameter('resource', 0); for (let i = 0; i < items.length; i++) { try { let responseData = {}; if (resource === 'general') { responseData = await GeneralOperations_1.executeGeneralOperations.call(this, i); } else if (resource === 'mission') { responseData = await MissionOperations_1.executeMissionOperations.call(this, i); } else if (resource === 'client') { responseData = await ClientOperations_1.executeClientOperations.call(this, i); } else if (resource === 'agent') { responseData = await AgentOperations_1.executeAgentOperations.call(this, i); } else if (resource === 'invoice') { responseData = await InvoiceOperations_1.executeInvoiceOperations.call(this, i); } else if (resource === 'contact') { responseData = await ContactOperations_1.executeContactOperations.call(this, i); } else if (resource === 'alert') { responseData = await AlertOperations_1.executeAlertOperations.call(this, i); } else if (resource === 'walter') { responseData = await WalterOperations_1.executeWalterOperations.call(this, i); } else if (resource === 'notification') { responseData = await NotificationOperations_1.executeNotificationOperations.call(this, i); } else if (resource === 'webhook') { responseData = await WebhookOperations_1.executeWebhookOperations.call(this, i); } else if (resource === 'route') { responseData = await RouteOperations_1.executeRouteOperations.call(this, i); } else if (resource === 'export') { responseData = await ExportOperations_1.executeExportOperations.call(this, i); } if (Array.isArray(responseData)) { returnData.push.apply(returnData, responseData); } else { returnData.push(responseData); } } catch (error) { if (this.continueOnFail()) { returnData.push({ error: error.message }); continue; } throw error; } } return [this.helpers.returnJsonArray(returnData)]; } } exports.Everest = Everest; //# sourceMappingURL=Everest.node.js.map