UNPKG

n8n-nodes-everest-tms

Version:

Everest TMS n8n integration

90 lines 4.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.executeInvoiceOperations = executeInvoiceOperations; const GenericFunctions_1 = require("../GenericFunctions"); async function executeInvoiceOperations(itemIndex) { const operation = this.getNodeParameter('operation', itemIndex); if (operation === 'get') { const id = this.getNodeParameter('id', itemIndex); (0, GenericFunctions_1.validateRequiredFields)({ id }, ['id']); const response = await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/invoices/get', { id }); return response.invoice || response; } if (operation === 'getMany') { const options = this.getNodeParameter('options', itemIndex, {}); const body = (0, GenericFunctions_1.cleanObject)(options); // Handle pagination if (body.limit && body.limit > 0) { // Use custom limit_start if provided, otherwise default to 0 const limitStart = body.limit_start || 0; body.limit_start = limitStart; body.limit_end = limitStart + body.limit; delete body.limit; const response = await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/invoices', body); return response.invoices || []; } else { return await GenericFunctions_1.everestApiRequestAllItems.call(this, 'invoices', 'POST', '/invoices', body); } } if (operation === 'create') { const type = this.getNodeParameter('type', itemIndex); const title = this.getNodeParameter('title', itemIndex); const description = this.getNodeParameter('description', itemIndex); const nameOrCompany = this.getNodeParameter('name_or_company', itemIndex); const address = this.getNodeParameter('address', itemIndex); const amountExcl = this.getNodeParameter('amount_excl', itemIndex); const amountIncl = this.getNodeParameter('amount_incl', itemIndex); const createdFor = this.getNodeParameter('created_for', itemIndex); const additionalFields = this.getNodeParameter('additionalFields', itemIndex, {}); const missionsString = this.getNodeParameter('missions', itemIndex, ''); (0, GenericFunctions_1.validateRequiredFields)({ type, title, description, name_or_company: nameOrCompany, address, amount_excl: amountExcl, amount_incl: amountIncl, created_for: createdFor }, ['type', 'title', 'description', 'name_or_company', 'address', 'amount_excl', 'amount_incl', 'created_for']); const body = { type, title, description, name_or_company: nameOrCompany, address, amount_excl: amountExcl, amount_incl: amountIncl, created_for: createdFor, ...(0, GenericFunctions_1.cleanObject)(additionalFields), }; // Handle missions array if (missionsString) { body.missions = missionsString.split(',').map(ref => ref.trim()); } // Handle date conversion if (body.date_paid) { body.date_paid = Math.floor(new Date(body.date_paid).getTime() / 1000); } const response = await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/invoices/create', body); return response.invoice || response; } if (operation === 'update') { const id = this.getNodeParameter('id', itemIndex); const updateFields = this.getNodeParameter('updateFields', itemIndex, {}); (0, GenericFunctions_1.validateRequiredFields)({ id }, ['id']); const body = { id, ...(0, GenericFunctions_1.cleanObject)(updateFields), }; // Handle missions array if (body.missions && typeof body.missions === 'string') { body.missions = body.missions.split(',').map(ref => ref.trim()); } // Handle date conversion if (body.date_paid) { body.date_paid = Math.floor(new Date(body.date_paid).getTime() / 1000); } const response = await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/invoices/update', body); return response.invoice || response; } if (operation === 'delete') { const id = this.getNodeParameter('id', itemIndex); (0, GenericFunctions_1.validateRequiredFields)({ id }, ['id']); return await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/invoices/delete', { id }); } throw new Error(`The operation "${operation}" is not known!`); } //# sourceMappingURL=InvoiceOperations.js.map