UNPKG

n8n-bookstack-agent-tool

Version:

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

48 lines 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TagsResource = void 0; const client_js_1 = require("../auth/client.js"); const zod_1 = require("zod"); const TagSchema = zod_1.z.object({ id: zod_1.z.number().optional(), name: zod_1.z.string().min(1, 'Tag name is required'), value: zod_1.z.string().optional() }); const ListTagsParamsSchema = 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(), name: zod_1.z.string().optional() }); const TagIdParamsSchema = zod_1.z.object({ id: zod_1.z.number().min(1, 'Tag ID is required') }); class TagsResource { constructor(config) { this.client = new client_js_1.BookStackClient(config); } async listTags(params = {}) { const validatedParams = ListTagsParamsSchema.parse(params); return await this.client.get('/api/tags', validatedParams); } async getTag(params) { const validatedParams = TagIdParamsSchema.parse(params); return await this.client.get('/api/tags/{id}', validatedParams); } async createTag(params) { const validatedParams = TagSchema.parse(params); return await this.client.post('/api/tags', validatedParams); } async updateTag(params) { const { id, ...tagData } = params; const validatedId = TagIdParamsSchema.parse({ id }); const validatedData = TagSchema.partial().parse(tagData); return await this.client.put('/api/tags/{id}', { ...validatedId, ...validatedData }); } async deleteTag(params) { const validatedParams = TagIdParamsSchema.parse(params); return await this.client.delete('/api/tags/{id}', validatedParams); } } exports.TagsResource = TagsResource; //# sourceMappingURL=tags.js.map