n8n-nodes-everest-tms
Version:
Everest TMS n8n integration
311 lines • 14.2 kB
JavaScript
;
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