index.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { OpenAPIHono } from '@hono/zod-openapi';
  2. import uploadPolicyRoute from './upload-policy/post';
  3. import multipartPolicyRoute from './multipart-policy/post';
  4. import completeMultipartRoute from './multipart-complete/post';
  5. import getUrlRoute from './[id]/get-url';
  6. import deleteRoute from './[id]/delete';
  7. import downloadRoute from './[id]/download';
  8. import { AuthContext } from '@d8d/shared-types';
  9. import { createCrudRoutes } from '@d8d/shared-crud';
  10. import { File } from '../entities/file.entity';
  11. import { FileSchema, CreateFileDto, UpdateFileDto } from '../schemas/file.schema';
  12. import { authMiddleware } from '@d8d/auth-module/middleware';
  13. const fileCrudRoutes = createCrudRoutes({
  14. entity: File,
  15. createSchema: CreateFileDto,
  16. updateSchema: UpdateFileDto,
  17. getSchema: FileSchema,
  18. listSchema: FileSchema,
  19. searchFields: ['name', 'type', 'description'],
  20. relations: ['uploadUser'],
  21. middleware: [authMiddleware]
  22. })
  23. // 创建路由实例并聚合所有子路由
  24. const fileRoutes = new OpenAPIHono<AuthContext>()
  25. .route('/upload-policy', uploadPolicyRoute)
  26. .route('/multipart-policy', multipartPolicyRoute)
  27. .route('/multipart-complete', completeMultipartRoute)
  28. .route('/', getUrlRoute)
  29. .route('/', downloadRoute)
  30. .route('/', deleteRoute)
  31. .route('/', fileCrudRoutes)
  32. export { fileRoutes };
  33. export default fileRoutes;