UNPKG

n8n-bookstack-agent-tool

Version:

Comprehensive BookStack API integration tool for n8n AI Agent with MCP framework compatibility

49 lines 1.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RolesResource = void 0; const client_js_1 = require("../auth/client.js"); const zod_1 = require("zod"); const RoleSchema = zod_1.z.object({ id: zod_1.z.number().optional(), display_name: zod_1.z.string().min(1, 'Role display name is required'), description: zod_1.z.string().optional(), mfa_enforced: zod_1.z.boolean().optional(), external_auth_id: zod_1.z.string().optional() }); const ListRolesParamsSchema = zod_1.z.object({ count: zod_1.z.number().min(1).max(500).optional(), offset: zod_1.z.number().min(0).optional(), sort: zod_1.z.string().optional() }); const RoleIdParamsSchema = zod_1.z.object({ id: zod_1.z.number().min(1, 'Role ID is required') }); class RolesResource { constructor(config) { this.client = new client_js_1.BookStackClient(config); } async listRoles(params = {}) { const validatedParams = ListRolesParamsSchema.parse(params); return await this.client.get('/api/roles', validatedParams); } async getRole(params) { const validatedParams = RoleIdParamsSchema.parse(params); return await this.client.get('/api/roles/{id}', validatedParams); } async createRole(params) { const validatedParams = RoleSchema.parse(params); return await this.client.post('/api/roles', validatedParams); } async updateRole(params) { const { id, ...roleData } = params; const validatedId = RoleIdParamsSchema.parse({ id }); const validatedData = RoleSchema.partial().parse(roleData); return await this.client.put('/api/roles/{id}', { ...validatedId, ...validatedData }); } async deleteRole(params) { const validatedParams = RoleIdParamsSchema.parse(params); return await this.client.delete('/api/roles/{id}', validatedParams); } } exports.RolesResource = RolesResource; //# sourceMappingURL=roles.js.map