UNPKG

n8n-bookstack-agent-tool

Version:

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

51 lines 2.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ShelvesResource = void 0; const client_js_1 = require("../auth/client.js"); const zod_1 = require("zod"); const ShelfSchema = zod_1.z.object({ id: zod_1.z.number().optional(), name: zod_1.z.string().min(1, 'Shelf name is required'), description: zod_1.z.string().optional(), tags: zod_1.z.array(zod_1.z.object({ name: zod_1.z.string(), value: zod_1.z.string() })).optional() }); const ListShelvesParamsSchema = 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 ShelfIdParamsSchema = zod_1.z.object({ id: zod_1.z.number().min(1, 'Shelf ID is required') }); class ShelvesResource { constructor(config) { this.client = new client_js_1.BookStackClient(config); } async listShelves(params = {}) { const validatedParams = ListShelvesParamsSchema.parse(params); return await this.client.get('/api/shelves', validatedParams); } async getShelf(params) { const validatedParams = ShelfIdParamsSchema.parse(params); return await this.client.get('/api/shelves/{id}', validatedParams); } async createShelf(params) { const validatedParams = ShelfSchema.parse(params); return await this.client.post('/api/shelves', validatedParams); } async updateShelf(params) { const { id, ...shelfData } = params; const validatedId = ShelfIdParamsSchema.parse({ id }); const validatedData = ShelfSchema.partial().parse(shelfData); return await this.client.put('/api/shelves/{id}', { ...validatedId, ...validatedData }); } async deleteShelf(params) { const validatedParams = ShelfIdParamsSchema.parse(params); return await this.client.delete('/api/shelves/{id}', validatedParams); } } exports.ShelvesResource = ShelvesResource; //# sourceMappingURL=shelves.js.map