@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
JavaScript
"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