UNPKG

@tuanltntu/n8n-nodes-bitrix24

Version:

Comprehensive n8n community node for Bitrix24 API integration with CRM, Tasks, Chat, Telephony, and more

136 lines 5.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UserFieldResourceHandler = void 0; const n8n_workflow_1 = require("n8n-workflow"); const ResourceHandlerBase_1 = require("./ResourceHandlerBase"); /** * Handler for Bitrix24 CRM user field operations */ class UserFieldResourceHandler extends ResourceHandlerBase_1.ResourceHandlerBase { constructor(executeFunctions, returnData, options = {}) { super(executeFunctions, returnData, options); } /** * Process all operations for user fields */ async process() { const operation = this.getNodeParameter("operation", 0); for (let i = 0; i < this.items.length; i++) { try { const continueOnFail = this.getNodeParameter("continueOnFail", i, false); // Process items according to the operation if (operation === "add") { await this.handleAdd(i); } else if (operation === "delete") { await this.handleDelete(i); } else if (operation === "get") { await this.handleGet(i); } else if (operation === "getFields") { await this.handleGetFields(i); } else if (operation === "getList") { await this.handleGetList(i); } else if (operation === "update") { await this.handleUpdate(i); } else { throw new n8n_workflow_1.NodeOperationError(this.executeFunctions.getNode(), `The operation "${operation}" is not supported for user fields!`, { itemIndex: i }); } } catch (error) { if (this.continueOnFail()) { this.addErrorToReturnData(error, i); } else { throw error; } } } return this.returnData; } /** * Handle the "add" operation for user fields */ async handleAdd(itemIndex) { const fields = this.getNodeParameter("fields", itemIndex); const entityId = this.getNodeParameter("entityId", itemIndex); // Parse fields const fieldData = this.parseJsonParameter(fields, 'The "fields" parameter must be valid JSON', itemIndex); // API call const responseData = await this.makeApiCall("crm.userfield.add", { fields: { ...fieldData, ENTITY_ID: entityId, }, }, {}, itemIndex); this.addResponseToReturnData(responseData, itemIndex); } /** * Handle the "delete" operation for user fields */ async handleDelete(itemIndex) { const id = this.getNodeParameter("id", itemIndex); // API call const responseData = await this.makeApiCall("crm.userfield.delete", { id }, {}, itemIndex); this.addResponseToReturnData(responseData, itemIndex); } /** * Handle the "get" operation for user fields */ async handleGet(itemIndex) { const id = this.getNodeParameter("id", itemIndex); // API call const responseData = await this.makeApiCall("crm.userfield.get", { id }, {}, itemIndex); this.addResponseToReturnData(responseData, itemIndex); } /** * Handle the "getFields" operation for user fields */ async handleGetFields(itemIndex) { const entityId = this.getNodeParameter("entityId", itemIndex); // API call const responseData = await this.makeApiCall("crm.userfield.fields", { entityId, }, {}, itemIndex); this.addResponseToReturnData(responseData, itemIndex); } /** * Handle the "getList" operation for user fields */ async handleGetList(itemIndex) { const filter = this.getNodeParameter("filter", itemIndex, "{}"); const order = this.getNodeParameter("order", itemIndex, "{}"); const select = this.getNodeParameter("select", itemIndex, []); // Parse filter and order const filterData = this.parseJsonParameter(filter, 'The "filter" parameter must be valid JSON', itemIndex); const orderData = this.parseJsonParameter(order, 'The "order" parameter must be valid JSON', itemIndex); // API call const responseData = await this.makeApiCall("crm.userfield.list", { filter: filterData, order: orderData, select: select.length ? select : undefined, }, {}, itemIndex); this.addResponseToReturnData(responseData, itemIndex); } /** * Handle the "update" operation for user fields */ async handleUpdate(itemIndex) { const id = this.getNodeParameter("id", itemIndex); const fields = this.getNodeParameter("fields", itemIndex); // Parse fields const fieldData = this.parseJsonParameter(fields, 'The "fields" parameter must be valid JSON', itemIndex); // API call const responseData = await this.makeApiCall("crm.userfield.update", { id, fields: fieldData, }, {}, itemIndex); this.addResponseToReturnData(responseData, itemIndex); } } exports.UserFieldResourceHandler = UserFieldResourceHandler; //# sourceMappingURL=UserFieldResourceHandler.js.map