@kaia-team/n8n-nodes-kaia
Version:
n8n nodes for Kaia LLM integration
195 lines • 6.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.chatHistoriesApiProperties = void 0;
exports.handleChatHistoriesApi = handleChatHistoriesApi;
const n8n_workflow_1 = require("n8n-workflow");
const utils_1 = require("../utils");
/**
* Chat Histories API Properties
* Properties specific to the chatHistories API resource
*/
exports.chatHistoriesApiProperties = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['chatHistories'],
},
},
options: [
{
name: 'List',
value: 'list',
action: 'List chat histories',
},
{
name: 'Read',
value: 'read',
action: 'Read a chat history',
},
],
default: 'list',
},
{
displayName: 'Chat History ID',
name: 'chatHistoryId',
type: 'string',
default: '',
displayOptions: {
show: {
resource: ['chatHistories'],
operation: ['read'],
},
},
required: true,
},
{
displayName: 'Start Date',
name: 'start_date',
type: 'dateTime',
default: '',
displayOptions: {
show: {
resource: ['chatHistories'],
operation: ['list'],
},
},
},
{
displayName: 'End Date',
name: 'end_date',
type: 'dateTime',
default: '',
displayOptions: {
show: {
resource: ['chatHistories'],
operation: ['list'],
},
},
},
{
displayName: 'Assistants',
name: 'assistants',
type: 'string',
default: '',
placeholder: '67891a243d8c8bb261870f87, 67925d786582eb1f22f82429, 6784f852c9fb0f1181cdc7de',
displayOptions: {
show: {
resource: ['chatHistories'],
operation: ['list'],
},
},
description: 'Comma-separated list of assistant IDs (e.g., 67891a243d8c8bb261870f87, 67925d786582eb1f22f82429)',
},
{
displayName: 'Sorting',
name: 'sorting',
type: 'string',
default: 'created',
displayOptions: {
show: {
resource: ['chatHistories'],
operation: ['list'],
},
},
},
{
displayName: 'Content',
name: 'content',
type: 'options',
options: [
{ name: 'Short', value: 'short' },
{ name: 'Long', value: 'long' },
],
default: 'short',
displayOptions: {
show: {
resource: ['chatHistories'],
operation: ['list'],
},
},
description: 'Content type (short for external chats, long for full content)',
},
{
displayName: 'User ID',
name: 'user_id',
type: 'string',
default: '',
displayOptions: {
show: {
resource: ['chatHistories'],
operation: ['list'],
},
},
},
{
displayName: 'Account ID',
name: 'account_id',
type: 'string',
default: '',
displayOptions: {
show: {
resource: ['chatHistories'],
operation: ['list'],
},
},
},
];
/**
* Chat Histories API Handler
* Handles requests to the chatHistories API
*/
async function handleChatHistoriesApi(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') {
const qs = {};
const startDate = executeFunctions.getNodeParameter('start_date', itemIndex, '');
if (startDate)
qs.start_date = startDate;
const endDate = executeFunctions.getNodeParameter('end_date', itemIndex, '');
if (endDate)
qs.end_date = endDate;
const assistantsStr = executeFunctions.getNodeParameter('assistants', itemIndex, '');
if (assistantsStr) {
const assistantsArray = assistantsStr.split(',').map(s => s.trim());
// Use repeat format for Rails-style array parameters
qs['assistants[]'] = assistantsArray;
}
const sorting = executeFunctions.getNodeParameter('sorting', itemIndex, '');
if (sorting)
qs.sorting = sorting;
const content = executeFunctions.getNodeParameter('content', itemIndex, '');
if (content)
qs.content = content;
const userId = executeFunctions.getNodeParameter('user_id', itemIndex, '');
if (userId)
qs.user_id = userId;
const accountId = executeFunctions.getNodeParameter('account_id', itemIndex, '');
if (accountId)
qs.account_id = accountId;
const response = await executeFunctions.helpers.httpRequest({
method: 'GET',
url: `${adminUrl}/chat_histories.json`,
headers,
qs,
arrayFormat: 'repeat', // This will format arrays as repeated parameters
});
return executeFunctions.helpers.returnJsonArray(response);
}
else if (operation === 'read') {
const chatHistoryId = executeFunctions.getNodeParameter('chatHistoryId', itemIndex);
const response = await executeFunctions.helpers.httpRequest({
method: 'GET',
url: `${adminUrl}/chat_histories/${chatHistoryId}.json`,
headers,
});
return response;
}
throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), `Unknown chat histories operation: ${operation}`);
}
//# sourceMappingURL=chatHistoriesApi.js.map