UNPKG

@kaia-team/n8n-nodes-kaia

Version:
283 lines 9.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.linkPackagesApiProperties = void 0; exports.handleLinkPackagesApi = handleLinkPackagesApi; const n8n_workflow_1 = require("n8n-workflow"); const utils_1 = require("../utils"); /** * Link Packages API Properties * Properties specific to the linkPackages API resource (link package management) */ exports.linkPackagesApiProperties = [ { displayName: 'Operation', name: 'operation', type: 'options', noDataExpression: true, displayOptions: { show: { resource: ['linkPackages'], }, }, options: [ { name: 'Create', value: 'create', action: 'Create a link package', }, { name: 'Delete', value: 'delete', action: 'Delete a link package', }, { name: 'List', value: 'list', action: 'List link packages', }, { name: 'Read', value: 'read', action: 'Read a link package', }, { name: 'Update', value: 'update', action: 'Update a link package', }, ], default: 'list', }, { displayName: 'Widget Config ID', name: 'widget_config_id', type: 'string', default: '', displayOptions: { show: { resource: ['linkPackages'], }, }, description: 'The ID of the widget config', required: true, }, { displayName: 'Unique Name', name: 'unique_name', type: 'string', default: '', displayOptions: { show: { resource: ['linkPackages'], operation: ['read', 'create', 'update', 'delete'], }, }, description: 'The unique name of the link package', required: true, }, { displayName: 'Name', name: 'name', type: 'string', default: '', displayOptions: { show: { resource: ['linkPackages'], operation: ['create', 'update'], }, }, description: 'Name of the link package', }, { displayName: 'User Message', name: 'user_message', type: 'string', typeOptions: { rows: 3 }, default: '', displayOptions: { show: { resource: ['linkPackages'], operation: ['create', 'update'], }, }, description: 'User message for the link package', }, { displayName: 'Assistant ID', name: 'assistant_id', type: 'string', default: '', displayOptions: { show: { resource: ['linkPackages'], operation: ['create', 'update'], }, }, description: 'Assistant ID for the link package', }, { displayName: 'Widget State', name: 'widget_state', type: 'options', options: [ { name: 'Default', value: 'default', }, { name: 'Collapsed', value: 'collapsed', }, { name: 'Open', value: 'open', }, { name: 'Fullscreen', value: 'fullscreen', }, ], default: 'default', displayOptions: { show: { resource: ['linkPackages'], operation: ['create', 'update'], }, }, description: 'Widget state for the link package', }, { displayName: 'Screen State', name: 'screen_state', type: 'options', options: [ { name: 'None', value: '', }, { name: 'Login', value: 'login', }, { name: 'Register', value: 'register', }, ], default: '', displayOptions: { show: { resource: ['linkPackages'], operation: ['create', 'update'], }, }, description: 'Screen state for the link package', }, { displayName: 'Enabled', name: 'enabled', type: 'boolean', default: true, displayOptions: { show: { resource: ['linkPackages'], operation: ['create', 'update'], }, }, description: 'Whether the link package is enabled', }, { displayName: 'Message Hidden', name: 'message_hidden', type: 'boolean', default: false, displayOptions: { show: { resource: ['linkPackages'], operation: ['create', 'update'], }, }, description: 'Whether the message is hidden', }, ]; /** * Link Packages API Handler * Handles requests to the linkPackages API (link package management) */ async function handleLinkPackagesApi(executeFunctions, itemIndex, adminUrl, adminToken) { const operation = executeFunctions.getNodeParameter('operation', itemIndex); const additionalFields = executeFunctions.getNodeParameter('additionalFields', itemIndex, {}); const headers = (0, utils_1.createHeaders)(adminToken, additionalFields); if (operation === 'list') { let widgetConfigId = executeFunctions.getNodeParameter('widget_config_id', itemIndex); widgetConfigId = (0, utils_1.extractIdFromUrlOrId)(widgetConfigId, 'widget_configs'); const response = await executeFunctions.helpers.httpRequest({ method: 'GET', url: `${adminUrl}/widget_configs/${widgetConfigId}/link_packages.json`, headers, }); return executeFunctions.helpers.returnJsonArray(response); } else if (operation === 'read') { let widgetConfigId = executeFunctions.getNodeParameter('widget_config_id', itemIndex); widgetConfigId = (0, utils_1.extractIdFromUrlOrId)(widgetConfigId, 'widget_configs'); let uniqueName = executeFunctions.getNodeParameter('unique_name', itemIndex); uniqueName = (0, utils_1.extractIdFromUrlOrId)(uniqueName, 'link_packages'); const response = await executeFunctions.helpers.httpRequest({ method: 'GET', url: `${adminUrl}/widget_configs/${widgetConfigId}/link_packages/${uniqueName}.json`, headers, }); return response; } else if (operation === 'create' || operation === 'update') { let widgetConfigId = executeFunctions.getNodeParameter('widget_config_id', itemIndex); widgetConfigId = (0, utils_1.extractIdFromUrlOrId)(widgetConfigId, 'widget_configs'); const payload = { link_package: {} }; const addIfSet = (key, param, defaultVal = '') => { const val = executeFunctions.getNodeParameter(param, itemIndex, defaultVal); if (val !== defaultVal && (typeof val !== 'string' || val.trim() !== '')) { payload.link_package[key] = val; } }; addIfSet('name', 'name'); addIfSet('unique_name', 'unique_name'); addIfSet('user_message', 'user_message'); addIfSet('assistant_id', 'assistant_id'); addIfSet('widget_state', 'widget_state'); addIfSet('screen_state', 'screen_state'); addIfSet('enabled', 'enabled', true); addIfSet('message_hidden', 'message_hidden', false); const method = operation === 'create' ? 'POST' : 'PATCH'; let url; if (operation === 'create') { url = `${adminUrl}/widget_configs/${widgetConfigId}/link_packages.json`; } else { let uniqueName = executeFunctions.getNodeParameter('unique_name', itemIndex); uniqueName = (0, utils_1.extractIdFromUrlOrId)(uniqueName, 'link_packages'); url = `${adminUrl}/widget_configs/${widgetConfigId}/link_packages/${uniqueName}.json`; } const response = await executeFunctions.helpers.httpRequest({ method: method, url, body: payload, headers, }); return response; } else if (operation === 'delete') { let widgetConfigId = executeFunctions.getNodeParameter('widget_config_id', itemIndex); widgetConfigId = (0, utils_1.extractIdFromUrlOrId)(widgetConfigId, 'widget_configs'); let uniqueName = executeFunctions.getNodeParameter('unique_name', itemIndex); uniqueName = (0, utils_1.extractIdFromUrlOrId)(uniqueName, 'link_packages'); const response = await executeFunctions.helpers.httpRequest({ method: 'DELETE', url: `${adminUrl}/widget_configs/${widgetConfigId}/link_packages/${uniqueName}.json`, headers, }); return { success: true, deleted: uniqueName }; } throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), `Unknown link packages operation: ${operation}`); } //# sourceMappingURL=linkPackagesApi.js.map