UNPKG

n8n-bookstack-agent-tool

Version:

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

52 lines 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ChaptersResource = void 0; const client_js_1 = require("../auth/client.js"); const zod_1 = require("zod"); const ChapterSchema = zod_1.z.object({ id: zod_1.z.number().optional(), name: zod_1.z.string().min(1, 'Chapter name is required'), description: zod_1.z.string().optional(), book_id: zod_1.z.number().min(1, 'Book ID is required'), tags: zod_1.z.array(zod_1.z.object({ name: zod_1.z.string(), value: zod_1.z.string() })).optional() }); const ListChaptersParamsSchema = 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 ChapterIdParamsSchema = zod_1.z.object({ id: zod_1.z.number().min(1, 'Chapter ID is required') }); class ChaptersResource { constructor(config) { this.client = new client_js_1.BookStackClient(config); } async listChapters(params = {}) { const validatedParams = ListChaptersParamsSchema.parse(params); return await this.client.get('/api/chapters', validatedParams); } async getChapter(params) { const validatedParams = ChapterIdParamsSchema.parse(params); return await this.client.get('/api/chapters/{id}', validatedParams); } async createChapter(params) { const validatedParams = ChapterSchema.parse(params); return await this.client.post('/api/chapters', validatedParams); } async updateChapter(params) { const { id, ...chapterData } = params; const validatedId = ChapterIdParamsSchema.parse({ id }); const validatedData = ChapterSchema.partial().parse(chapterData); return await this.client.put('/api/chapters/{id}', { ...validatedId, ...validatedData }); } async deleteChapter(params) { const validatedParams = ChapterIdParamsSchema.parse(params); return await this.client.delete('/api/chapters/{id}', validatedParams); } } exports.ChaptersResource = ChaptersResource; //# sourceMappingURL=chapters.js.map