@kaia-team/n8n-nodes-kaia
Version:
n8n nodes for Kaia LLM integration
283 lines • 9.53 kB
JavaScript
;
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