| 1234567891011121314151617181920212223242526272829303132333435 |
- import { OpenAPIHono } from '@hono/zod-openapi';
- import uploadPolicyRoute from './upload-policy/post';
- import multipartPolicyRoute from './multipart-policy/post';
- import completeMultipartRoute from './multipart-complete/post';
- 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'],
- relations: ['uploadUser'],
- middleware: [authMiddleware]
- })
- // 创建路由实例并聚合所有子路由
- const app = new OpenAPIHono<AuthContext>()
- .route('/upload-policy', uploadPolicyRoute)
- .route('/multipart-policy', multipartPolicyRoute)
- .route('/multipart-complete', completeMultipartRoute)
- .route('/{id}', getUrlRoute)
- .route('/', fileRoutes)
- .route('/{id}', deleteRoute)
- export default app;
|