UNPKG

@tuanltntu/n8n-nodes-bitrix24

Version:

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

479 lines 16.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.activityOperationFields = exports.activityOperations = void 0; const ModuleManager_1 = require("../ModuleManager"); // Standard operation options for activities const ACTIVITY_OPERATIONS = [ "create", "delete", "get", "getAll", "getFields", "update", ]; // Create completely isolated activity module exports.activityOperations = []; // Activity operation field - completely isolated for 'activity' resource const activityOperationField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Operation", name: "operation", type: "options", noDataExpression: true, options: [ { name: "Create", value: "create", description: "Create a new activity", action: "Create an activity", }, { name: "Delete", value: "delete", description: "Delete an activity", action: "Delete an activity", }, { name: "Get", value: "get", description: "Get an activity", action: "Get an activity", }, { name: "Get All", value: "getAll", description: "Get all activities", action: "Get all activities", }, { name: "Get Fields", value: "getFields", description: "Get activity fields", action: "Get activity fields", }, { name: "Update", value: "update", description: "Update an activity", action: "Update an activity", }, ], default: "getAll", }, ModuleManager_1.BITRIX24_MODULES.ACTIVITY); // CRM Activity operation field - completely isolated for 'crm' resource const crmActivityOperationField = ModuleManager_1.ModuleManager.createSubResourceOperations("crm", "activity", ACTIVITY_OPERATIONS, "crmActivityOperation"); // Activity ID field for standalone activity resource const activityIdField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Activity ID", name: "activityId", type: "string", required: true, default: "", description: "ID of the activity to operate on", }, ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["get", "delete", "update"], }); // Activity ID field for CRM context const crmActivityIdField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Activity ID", name: "crmActivityId", type: "string", required: true, default: "", description: "ID of the activity to operate on", }, ModuleManager_1.BITRIX24_MODULES.CRM, { crmResource: ["activity"], crmActivityOperation: ["get", "delete", "update"], }); // Type field for activity creation const activityTypeField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Type", name: "typeId", type: "options", options: [ { name: "Call", value: "CALL" }, { name: "Email", value: "EMAIL" }, { name: "Meeting", value: "MEETING" }, { name: "Task", value: "TASK" }, ], default: "CALL", required: true, description: "Type of activity to create", }, ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["create"], }); // Type field for CRM activity creation const crmActivityTypeField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Type", name: "typeId", type: "options", options: [ { name: "Call", value: "CALL" }, { name: "Email", value: "EMAIL" }, { name: "Meeting", value: "MEETING" }, { name: "Task", value: "TASK" }, ], default: "CALL", required: true, description: "Type of activity to create", }, ModuleManager_1.BITRIX24_MODULES.CRM, { crmResource: ["activity"], crmActivityOperation: ["create"], }); // Owner type field for activity creation const ownerTypeField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Owner Type", name: "ownerTypeId", type: "options", options: [ { name: "Company", value: "COMPANY" }, { name: "Contact", value: "CONTACT" }, { name: "Deal", value: "DEAL" }, { name: "Lead", value: "LEAD" }, ], default: "CONTACT", required: true, description: "Type of entity that owns the activity", }, ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["create"], }); // Owner type field for CRM activity creation const crmOwnerTypeField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Owner Type", name: "ownerTypeId", type: "options", options: [ { name: "Company", value: "COMPANY" }, { name: "Contact", value: "CONTACT" }, { name: "Deal", value: "DEAL" }, { name: "Lead", value: "LEAD" }, ], default: "CONTACT", required: true, description: "Type of entity that owns the activity", }, ModuleManager_1.BITRIX24_MODULES.CRM, { crmResource: ["activity"], crmActivityOperation: ["create"], }); // Owner ID fields const ownerIdField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Owner ID", name: "ownerId", type: "string", default: "", required: true, description: "ID of the entity that owns the activity", }, ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["create"], }); const crmOwnerIdField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Owner ID", name: "ownerId", type: "string", default: "", required: true, description: "ID of the entity that owns the activity", }, ModuleManager_1.BITRIX24_MODULES.CRM, { crmResource: ["activity"], crmActivityOperation: ["create"], }); // Subject fields const subjectField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Subject", name: "subject", type: "string", default: "", required: true, description: "Subject of the activity", }, ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["create"], }); const crmSubjectField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Subject", name: "subject", type: "string", default: "", required: true, description: "Subject of the activity", }, ModuleManager_1.BITRIX24_MODULES.CRM, { crmResource: ["activity"], crmActivityOperation: ["create"], }); // Return All fields const returnAllField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Return All", name: "returnAll", type: "boolean", default: false, description: "Whether to return all results or only up to a given limit", }, ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["getAll"], }); const crmReturnAllField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Return All", name: "returnAll", type: "boolean", default: false, description: "Whether to return all results or only up to a given limit", }, ModuleManager_1.BITRIX24_MODULES.CRM, { crmResource: ["activity"], crmActivityOperation: ["getAll"], }); // Limit fields const limitField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Limit", name: "limit", type: "number", default: 50, description: "Max number of results to return", typeOptions: { minValue: 1 }, }, ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["getAll"], returnAll: [false], }); const crmLimitField = ModuleManager_1.ModuleManager.createSimpleField({ displayName: "Limit", name: "limit", type: "number", default: 50, description: "Max number of results to return", typeOptions: { minValue: 1 }, }, ModuleManager_1.BITRIX24_MODULES.CRM, { crmResource: ["activity"], crmActivityOperation: ["getAll"], returnAll: [false], }); // Update fields collection const updateFieldsCollection = ModuleManager_1.ModuleManager.createSimpleCollection("Update Fields", ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["update"] }, [ { displayName: "Subject", name: "SUBJECT", type: "string", default: "", description: "Subject of the activity", }, { displayName: "Description", name: "DESCRIPTION", type: "string", default: "", description: "Description of the activity", }, { displayName: "Direction", name: "DIRECTION", type: "options", options: [ { name: "Incoming", value: 1 }, { name: "Outgoing", value: 2 }, ], default: 1, description: "Direction of the activity", }, { displayName: "Completed", name: "COMPLETED", type: "options", options: [ { name: "Yes", value: "Y" }, { name: "No", value: "N" }, ], default: "N", description: "Whether the activity is completed", }, { displayName: "Priority", name: "PRIORITY", type: "options", options: [ { name: "Low", value: 1 }, { name: "Medium", value: 2 }, { name: "High", value: 3 }, ], default: 2, description: "Priority of the activity", }, { displayName: "Start Time", name: "START_TIME", type: "dateTime", default: "", description: "Start time of the activity", }, { displayName: "End Time", name: "END_TIME", type: "dateTime", default: "", description: "End time of the activity", }, { displayName: "Responsible User ID", name: "RESPONSIBLE_ID", type: "string", default: "", description: "ID of the responsible user", }, { displayName: "Communications", name: "COMMUNICATIONS", type: "fixedCollection", default: {}, description: "Communications for the activity", typeOptions: { multipleValues: true }, options: [ { name: "communication", displayName: "Communication", values: [ { displayName: "Type", name: "TYPE", type: "options", options: [ { name: "Phone", value: "PHONE" }, { name: "Email", value: "EMAIL" }, ], default: "PHONE", description: "Type of communication", }, { displayName: "Value", name: "VALUE", type: "string", default: "", description: "Value of the communication", }, ], }, ], }, { displayName: "Notify", name: "notify", type: "boolean", default: false, description: "Whether to notify the responsible user", }, ]); // Standard options template - properly typed as INodeProperties const standardOptions = [ { displayName: "Access Token", name: "accessToken", type: "string", default: "", placeholder: "Enter the access token to use instead of credentials.", description: "Access token to use for API requests. If provided, will take priority over token in credentials.", }, { displayName: "Filter", name: "filter", type: "json", default: "{}", description: "Filter for activities (JSON format)", placeholder: '{ "TYPE_ID": "CALL" }', }, { displayName: "Order", name: "order", type: "json", default: "{}", description: "Order of activities (JSON format)", placeholder: '{ "ID": "DESC" }', }, { displayName: "Select", name: "select", type: "string", default: "", description: "Comma-separated list of fields to select", placeholder: "ID,OWNER_ID,TYPE_ID", }, ]; // Options collections for different operations const getAllOptionsCollection = ModuleManager_1.ModuleManager.createSimpleCollection("Options", ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["getAll"] }, standardOptions); const crmGetAllOptionsCollection = ModuleManager_1.ModuleManager.createSimpleCollection("Options", ModuleManager_1.BITRIX24_MODULES.CRM, { crmResource: ["activity"], crmActivityOperation: ["getAll"] }, standardOptions); const getOptionsCollection = ModuleManager_1.ModuleManager.createSimpleCollection("Options", ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["get"] }, standardOptions.filter((opt) => opt.name !== "filter" && opt.name !== "order")); const crmGetOptionsCollection = ModuleManager_1.ModuleManager.createSimpleCollection("Options", ModuleManager_1.BITRIX24_MODULES.CRM, { crmResource: ["activity"], crmActivityOperation: ["get"] }, standardOptions.filter((opt) => opt.name !== "filter" && opt.name !== "order")); // Create options collections for other operations - fix typing for create options const createOptionsCollection = ModuleManager_1.ModuleManager.createSimpleCollection("Options", ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["create"] }, [ standardOptions[0], { displayName: "Description", name: "description", type: "string", default: "", description: "Description of the activity", }, { displayName: "Responsible User ID", name: "responsibleId", type: "string", default: "", description: "ID of the responsible user", }, ]); const crmCreateOptionsCollection = ModuleManager_1.ModuleManager.createSimpleCollection("Options", ModuleManager_1.BITRIX24_MODULES.CRM, { crmResource: ["activity"], crmActivityOperation: ["create"] }, [ standardOptions[0], { displayName: "Description", name: "description", type: "string", default: "", description: "Description of the activity", }, { displayName: "Responsible User ID", name: "responsibleId", type: "string", default: "", description: "ID of the responsible user", }, ]); const deleteOptionsCollection = ModuleManager_1.ModuleManager.createSimpleCollection("Options", ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["delete"] }, [standardOptions[0]] // Only Access Token ); const crmDeleteOptionsCollection = ModuleManager_1.ModuleManager.createSimpleCollection("Options", ModuleManager_1.BITRIX24_MODULES.CRM, { crmResource: ["activity"], crmActivityOperation: ["delete"] }, [standardOptions[0]] // Only Access Token ); const updateOptionsCollection = ModuleManager_1.ModuleManager.createSimpleCollection("Options", ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["update"] }, [standardOptions[0]] // Only Access Token ); const crmUpdateOptionsCollection = ModuleManager_1.ModuleManager.createSimpleCollection("Options", ModuleManager_1.BITRIX24_MODULES.CRM, { crmResource: ["activity"], crmActivityOperation: ["update"] }, [standardOptions[0]] // Only Access Token ); const getFieldsOptionsCollection = ModuleManager_1.ModuleManager.createSimpleCollection("Options", ModuleManager_1.BITRIX24_MODULES.ACTIVITY, { operation: ["getFields"] }, [standardOptions[0]] // Only Access Token ); const crmGetFieldsOptionsCollection = ModuleManager_1.ModuleManager.createSimpleCollection("Options", ModuleManager_1.BITRIX24_MODULES.CRM, { crmResource: ["activity"], crmActivityOperation: ["getFields"] }, [standardOptions[0]] // Only Access Token ); // Export all activity operation fields as completely isolated modules exports.activityOperationFields = [ // Standalone Activity Module activityOperationField, activityIdField, activityTypeField, ownerTypeField, ownerIdField, subjectField, returnAllField, limitField, updateFieldsCollection, getAllOptionsCollection, getOptionsCollection, createOptionsCollection, deleteOptionsCollection, updateOptionsCollection, getFieldsOptionsCollection, // CRM Activity Sub-Module crmActivityOperationField, crmActivityIdField, crmActivityTypeField, crmOwnerTypeField, crmOwnerIdField, crmSubjectField, crmReturnAllField, crmLimitField, crmGetAllOptionsCollection, crmGetOptionsCollection, crmCreateOptionsCollection, crmDeleteOptionsCollection, crmUpdateOptionsCollection, crmGetFieldsOptionsCollection, ]; //# sourceMappingURL=ActivityDescription.js.map