@kaia-team/n8n-nodes-kaia
Version:
n8n nodes for Kaia LLM integration
195 lines • 6.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.adminTokensApiProperties = void 0;
exports.handleAdminTokensApi = handleAdminTokensApi;
const n8n_workflow_1 = require("n8n-workflow");
const utils_1 = require("../utils");
/**
* Admin Tokens API Properties
* Properties specific to the adminTokens API resource
*
* TODO: Test this API module - the create operation properties (name, comment, purposes, expires_at)
* have not been integration tested yet and were added based on handler usage.
*/
exports.adminTokensApiProperties = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: ['adminTokens'],
},
},
options: [
{
name: 'Create',
value: 'create',
action: 'Create an admin token',
},
{
name: 'Delete',
value: 'delete',
action: 'Delete an admin token',
},
{
name: 'List',
value: 'list',
action: 'List admin tokens',
},
{
name: 'Read',
value: 'read',
action: 'Read an admin token',
},
{
name: 'Revoke',
value: 'revoke',
action: 'Revoke an admin token',
},
],
default: 'list',
},
// TODO: These properties were added based on handler usage but haven't been integration tested
{
displayName: 'Admin Token ID',
name: 'adminTokenId',
type: 'string',
default: '',
displayOptions: {
show: {
resource: ['adminTokens'],
operation: ['read', 'delete', 'revoke'],
},
},
required: true,
description: 'The ID of the admin token',
},
{
displayName: 'Name',
name: 'name',
type: 'string',
default: '',
displayOptions: {
show: {
resource: ['adminTokens'],
operation: ['create'],
},
},
required: true,
description: 'Name for the admin token',
},
{
displayName: 'Comment',
name: 'comment',
type: 'string',
default: '',
displayOptions: {
show: {
resource: ['adminTokens'],
operation: ['create'],
},
},
description: 'Comment for the admin token',
},
{
displayName: 'Purposes',
name: 'purposes',
type: 'string',
default: '',
displayOptions: {
show: {
resource: ['adminTokens'],
operation: ['create'],
},
},
description: 'Comma-separated list of purposes for the admin token',
},
{
displayName: 'Expires At',
name: 'expires_at',
type: 'dateTime',
default: '',
displayOptions: {
show: {
resource: ['adminTokens'],
operation: ['create'],
},
},
description: 'Expiration date for the admin token',
},
];
/**
* Admin Tokens API Handler
* Handles requests to the adminTokens API
*
* TODO: Test all operations, especially create operation with the new properties
*/
async function handleAdminTokensApi(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 response = await executeFunctions.helpers.httpRequest({
method: 'GET',
url: `${adminUrl}/admin_tokens.json`,
headers,
});
return executeFunctions.helpers.returnJsonArray(response);
}
else if (operation === 'read') {
let adminTokenId = executeFunctions.getNodeParameter('adminTokenId', itemIndex);
adminTokenId = (0, utils_1.extractIdFromUrlOrId)(adminTokenId, 'admin_tokens');
const response = await executeFunctions.helpers.httpRequest({
method: 'GET',
url: `${adminUrl}/admin_tokens/${adminTokenId}.json`,
headers,
});
return response;
}
else if (operation === 'create') {
const name = executeFunctions.getNodeParameter('name', itemIndex);
const comment = executeFunctions.getNodeParameter('comment', itemIndex);
const purposes = executeFunctions.getNodeParameter('purposes', itemIndex);
const expiresAt = executeFunctions.getNodeParameter('expires_at', itemIndex);
const payload = {
admin_token: {
name,
comment,
purposes: purposes.split(',').map(s => s.trim()),
expires_at: expiresAt,
},
};
const response = await executeFunctions.helpers.httpRequest({
method: 'POST',
url: `${adminUrl}/admin_tokens.json`,
body: payload,
headers,
});
return response;
}
else if (operation === 'revoke') {
let adminTokenId = executeFunctions.getNodeParameter('adminTokenId', itemIndex);
adminTokenId = (0, utils_1.extractIdFromUrlOrId)(adminTokenId, 'admin_tokens');
const response = await executeFunctions.helpers.httpRequest({
method: 'POST',
url: `${adminUrl}/admin_tokens/${adminTokenId}/revoke.json`,
body: {},
headers,
});
return { success: true, revokedId: adminTokenId };
}
else if (operation === 'delete') {
let adminTokenId = executeFunctions.getNodeParameter('adminTokenId', itemIndex);
adminTokenId = (0, utils_1.extractIdFromUrlOrId)(adminTokenId, 'admin_tokens');
const response = await executeFunctions.helpers.httpRequest({
method: 'DELETE',
url: `${adminUrl}/admin_tokens/${adminTokenId}.json`,
headers,
});
return { success: true, deletedId: adminTokenId };
}
throw new n8n_workflow_1.NodeOperationError(executeFunctions.getNode(), `Unknown admin tokens operation: ${operation}`);
}
//# sourceMappingURL=adminTokensApi.js.map