UNPKG

@kaia-team/n8n-nodes-kaia

Version:
195 lines 6.62 kB
"use strict"; 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