/** * 系统知识库路由 * * 路由前缀:/api/v1/admin/system-kb */ import { FastifyInstance } from 'fastify'; import { listKnowledgeBases, getKnowledgeBase, createKnowledgeBase, updateKnowledgeBase, deleteKnowledgeBase, listDocuments, uploadDocument, deleteDocument, downloadDocument, } from './systemKbController.js'; import { authenticate, requireRoles } from '../../../common/auth/auth.middleware.js'; export async function systemKbRoutes(fastify: FastifyInstance) { // 认证 + 角色守卫:SUPER_ADMIN / ADMIN / IIT_OPERATOR 均可完整操作知识库 const preHandler = [authenticate, requireRoles('SUPER_ADMIN', 'ADMIN', 'IIT_OPERATOR')]; // ==================== 知识库 CRUD ==================== // 获取知识库列表 fastify.get('/', { preHandler, }, listKnowledgeBases as any); // 创建知识库 fastify.post('/', { preHandler, }, createKnowledgeBase as any); // 获取知识库详情 fastify.get('/:id', { preHandler, }, getKnowledgeBase as any); // 更新知识库 fastify.patch('/:id', { preHandler, }, updateKnowledgeBase as any); // 删除知识库 fastify.delete('/:id', { preHandler, }, deleteKnowledgeBase as any); // ==================== 文档管理 ==================== // 获取文档列表 fastify.get('/:id/documents', { preHandler, }, listDocuments as any); // 上传文档 fastify.post('/:id/documents', { preHandler, }, uploadDocument as any); // 删除文档 fastify.delete('/:id/documents/:docId', { preHandler, }, deleteDocument as any); // 下载文档(获取签名 URL) fastify.get('/:id/documents/:docId/download', { preHandler, }, downloadDocument as any); } export default systemKbRoutes;