n8n-nodes-everest-tms
Version:
Everest TMS n8n integration
84 lines • 4.49 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.executeClientOperations = executeClientOperations;
const GenericFunctions_1 = require("../GenericFunctions");
async function executeClientOperations(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', '/clients/get', { id });
return response.client || response;
}
if (operation === 'getMany') {
const options = this.getNodeParameter('options', itemIndex, {});
let body = (0, GenericFunctions_1.cleanObject)(options);
// Handle date conversion for Europe/Paris timezone
body = (0, GenericFunctions_1.convertDateFieldsToParisTimezone)(body, ['date_between_start', 'date_between_end']);
// 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', '/clients', body);
return response.clients || [];
}
else {
return await GenericFunctions_1.everestApiRequestAllItems.call(this, 'clients', 'POST', '/clients', body);
}
}
if (operation === 'create') {
const email = this.getNodeParameter('email', itemIndex);
const firstName = this.getNodeParameter('first_name', itemIndex);
const lastName = this.getNodeParameter('last_name', itemIndex);
const tel = this.getNodeParameter('tel', itemIndex);
const password = this.getNodeParameter('password', itemIndex);
const passwordRepeat = this.getNodeParameter('password_repeat', itemIndex);
const additionalFields = this.getNodeParameter('additionalFields', itemIndex, {});
const customInfos = this.getNodeParameter('custom_infos', itemIndex, {});
(0, GenericFunctions_1.validateRequiredFields)({ email, first_name: firstName, last_name: lastName, tel, password, password_repeat: passwordRepeat }, ['email', 'first_name', 'last_name', 'tel', 'password', 'password_repeat']);
const body = {
email,
first_name: firstName,
last_name: lastName,
tel,
password,
password_repeat: passwordRepeat,
...(0, GenericFunctions_1.cleanObject)(additionalFields),
};
// Handle custom infos
if (customInfos.info) {
body.custom_infos = (0, GenericFunctions_1.formatCustomInfos)(customInfos.info);
}
const response = await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/clients/create', body);
return response.client || response;
}
if (operation === 'update') {
const id = this.getNodeParameter('id', itemIndex);
const updateFields = this.getNodeParameter('updateFields', itemIndex, {});
const additionalFields = this.getNodeParameter('additionalFields', itemIndex, {});
const customInfos = this.getNodeParameter('custom_infos', itemIndex, {});
(0, GenericFunctions_1.validateRequiredFields)({ id }, ['id']);
const body = {
id,
...(0, GenericFunctions_1.cleanObject)(updateFields),
...(0, GenericFunctions_1.cleanObject)(additionalFields),
};
// Handle custom infos
if (customInfos.info) {
body.custom_infos = (0, GenericFunctions_1.formatCustomInfos)(customInfos.info);
}
const response = await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/clients/update', body);
return response.client || response;
}
if (operation === 'delete') {
const id = this.getNodeParameter('id', itemIndex);
(0, GenericFunctions_1.validateRequiredFields)({ id }, ['id']);
const response = await GenericFunctions_1.everestApiRequest.call(this, 'POST', '/clients/delete', { id });
return response.client || response;
}
throw new Error(`The operation "${operation}" is not known!`);
}
//# sourceMappingURL=ClientOperations.js.map