Browse Source

✨ feat(files): 实现文件管理的CRUD路由

- 引入通用CRUD路由工具创建文件管理基础路由
- 配置文件实体的CRUD操作和验证规则
- 添加搜索功能,支持按名称、类型和描述搜索文件
- 应用认证中间件保护文件管理路由
- 调整路由结构,整合新的CRUD路由
yourname 8 months ago
parent
commit
45a7e386d2
1 changed files with 19 additions and 2 deletions
  1. 19 2
      src/server/api/files/index.ts

+ 19 - 2
src/server/api/files/index.ts

@@ -4,10 +4,27 @@ import getUrlRoute from './[id]/get-url';
 import deleteRoute from './[id]/delete';
 import { AuthContext } from '@/server/types/context';
 
+import { createCrudRoutes } from '@/server/utils/generic-crud.routes';
+import { File } from '@/server/modules/files/file.entity';
+import { FileSchema, CreateFileDto, UpdateFileDto } from '@/server/modules/files/file.entity';
+import { authMiddleware } from '@/server/middleware/auth.middleware';
+
+const fileRoutes = createCrudRoutes({
+  entity: File,
+  createSchema: CreateFileDto,
+  updateSchema: UpdateFileDto,
+  getSchema: FileSchema,
+  listSchema: FileSchema,
+  searchFields: ['name', 'type', 'description'],
+  middleware: [authMiddleware]
+})
+
+
 // 创建路由实例并聚合所有子路由
 const app = new OpenAPIHono<AuthContext>()
   .route('/upload-policy', uploadPolicyRoute)
-  .route('/{id}/url', getUrlRoute)
-  .route('/{id}', deleteRoute);
+  .route('/{id}', getUrlRoute)
+  .route('/', fileRoutes)
+  .route('/{id}', deleteRoute)
 
 export default app;