UNPKG

@tuanltntu/n8n-nodes-bitrix24

Version:

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

264 lines 9.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Bitrix24FieldRegistry = void 0; /** * Bitrix24 Field Registry - Smart field management without circular deps * * This registry: * 1. Loads field definitions on-demand * 2. Avoids importing all description files at once * 3. Provides clean separation between resources * 4. Eliminates circular dependency issues */ class Bitrix24FieldRegistry { /** * Get available operations for a resource */ getOperationsForResource(resource) { switch (resource) { case "crm": return [ { name: "Create", value: "create", description: "Create a CRM entity", }, { name: "Get", value: "get", description: "Get a CRM entity" }, { name: "Get All", value: "getAll", description: "Get all CRM entities", }, { name: "Update", value: "update", description: "Update a CRM entity", }, { name: "Delete", value: "delete", description: "Delete a CRM entity", }, { name: "Get Fields", value: "getFields", description: "Get CRM entity fields", }, ]; case "task": return [ { name: "Create", value: "create", description: "Create a task" }, { name: "Get", value: "get", description: "Get a task" }, { name: "Get All", value: "getAll", description: "Get all tasks" }, { name: "Update", value: "update", description: "Update a task" }, { name: "Delete", value: "delete", description: "Delete a task" }, { name: "Complete", value: "complete", description: "Complete a task", }, ]; case "user": return [ { name: "Get", value: "get", description: "Get user information" }, { name: "Get All", value: "getAll", description: "Get all users" }, { name: "Get Current", value: "getCurrent", description: "Get current user", }, { name: "Search", value: "search", description: "Search users" }, ]; case "file": return [ { name: "Upload", value: "upload", description: "Upload a file" }, { name: "Download", value: "download", description: "Download a file", }, { name: "Delete", value: "delete", description: "Delete a file" }, { name: "Get All", value: "getAll", description: "Get all files" }, ]; case "calendar": return [ { name: "Create", value: "create", description: "Create calendar event", }, { name: "Get", value: "get", description: "Get calendar event" }, { name: "Get All", value: "getAll", description: "Get all events" }, { name: "Update", value: "update", description: "Update calendar event", }, { name: "Delete", value: "delete", description: "Delete calendar event", }, ]; case "directapi": return [ { name: "Call", value: "call", description: "Make direct API call" }, ]; default: return []; } } /** * Get fields for a specific resource and operation */ getFieldsForOperation(resource, operation) { // For now, return basic fields - this can be expanded later const basicFields = [ { name: "ID", value: "id", description: "Entity ID" }, { name: "Access Token", value: "accessToken", description: "Custom access token", }, ]; switch (resource) { case "crm": return this.getCrmFields(operation); case "task": return this.getTaskFields(operation); case "user": return this.getUserFields(operation); case "file": return this.getFileFields(operation); case "calendar": return this.getCalendarFields(operation); case "directapi": return this.getDirectApiFields(operation); default: return basicFields; } } getCrmFields(operation) { const baseFields = [ { name: "CRM Resource", value: "crmResource", description: "Type of CRM entity", }, { name: "ID", value: "id", description: "Entity ID" }, ]; switch (operation) { case "create": return [ ...baseFields, { name: "Title", value: "title", description: "Entity title" }, { name: "Assigned User ID", value: "assignedUserId", description: "Assigned user", }, ]; case "update": return [ ...baseFields, { name: "Fields to Update", value: "fieldsToUpdate", description: "Fields to update", }, ]; default: return baseFields; } } getTaskFields(operation) { const baseFields = [ { name: "Task ID", value: "taskId", description: "Task ID" }, ]; switch (operation) { case "create": return [ ...baseFields, { name: "Title", value: "title", description: "Task title" }, { name: "Description", value: "description", description: "Task description", }, { name: "Responsible User ID", value: "responsibleUserId", description: "Responsible user", }, ]; default: return baseFields; } } getUserFields(operation) { return [ { name: "User ID", value: "userId", description: "User ID" }, { name: "Search Query", value: "searchQuery", description: "Search term", }, ]; } getFileFields(operation) { const baseFields = [ { name: "File ID", value: "fileId", description: "File ID" }, ]; switch (operation) { case "upload": return [ ...baseFields, { name: "File Data", value: "fileData", description: "File content" }, { name: "File Name", value: "fileName", description: "File name" }, ]; default: return baseFields; } } getCalendarFields(operation) { const baseFields = [ { name: "Event ID", value: "eventId", description: "Calendar event ID" }, ]; switch (operation) { case "create": return [ ...baseFields, { name: "Title", value: "title", description: "Event title" }, { name: "Start Date", value: "startDate", description: "Start date and time", }, { name: "End Date", value: "endDate", description: "End date and time", }, ]; default: return baseFields; } } getDirectApiFields(operation) { return [ { name: "Endpoint", value: "endpoint", description: "API endpoint to call", }, { name: "Method", value: "method", description: "HTTP method" }, { name: "Parameters", value: "parameters", description: "API parameters", }, ]; } } exports.Bitrix24FieldRegistry = Bitrix24FieldRegistry; //# sourceMappingURL=Bitrix24FieldRegistry.js.map