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