n8n-bookstack-agent-tool
Version:
Comprehensive BookStack API integration tool for n8n AI Agent with MCP framework compatibility
50 lines • 2.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UsersResource = void 0;
const client_js_1 = require("../auth/client.js");
const zod_1 = require("zod");
const UserSchema = zod_1.z.object({
id: zod_1.z.number().optional(),
name: zod_1.z.string().min(1, 'User name is required'),
email: zod_1.z.string().email('Valid email is required'),
password: zod_1.z.string().min(6, 'Password must be at least 6 characters').optional(),
roles: zod_1.z.array(zod_1.z.number()).optional(),
send_invite: zod_1.z.boolean().optional()
});
const ListUsersParamsSchema = 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 UserIdParamsSchema = zod_1.z.object({
id: zod_1.z.number().min(1, 'User ID is required')
});
class UsersResource {
constructor(config) {
this.client = new client_js_1.BookStackClient(config);
}
async listUsers(params = {}) {
const validatedParams = ListUsersParamsSchema.parse(params);
return await this.client.get('/api/users', validatedParams);
}
async getUser(params) {
const validatedParams = UserIdParamsSchema.parse(params);
return await this.client.get('/api/users/{id}', validatedParams);
}
async createUser(params) {
const validatedParams = UserSchema.parse(params);
return await this.client.post('/api/users', validatedParams);
}
async updateUser(params) {
const { id, ...userData } = params;
const validatedId = UserIdParamsSchema.parse({ id });
const validatedData = UserSchema.partial().parse(userData);
return await this.client.put('/api/users/{id}', { ...validatedId, ...validatedData });
}
async deleteUser(params) {
const validatedParams = UserIdParamsSchema.parse(params);
return await this.client.delete('/api/users/{id}', validatedParams);
}
}
exports.UsersResource = UsersResource;
//# sourceMappingURL=users.js.map