user.routes.ts 983 B

1234567891011121314151617181920212223242526
  1. import { OpenAPIHono } from '@hono/zod-openapi';
  2. import { createCrudRoutes } from '@d8d/shared-crud';
  3. import { UserEntity } from '../entities/user.entity';
  4. import { UserSchema, CreateUserDto, UpdateUserDto } from '../schemas/user.schema';
  5. import customRoutes from './custom.routes';
  6. // 创建通用CRUD路由配置
  7. const userCrudRoutes = createCrudRoutes({
  8. entity: UserEntity,
  9. createSchema: CreateUserDto,
  10. updateSchema: UpdateUserDto,
  11. getSchema: UserSchema,
  12. listSchema: UserSchema,
  13. searchFields: ['username', 'nickname', 'phone', 'email'],
  14. relations: ['roles'],
  15. // 暂时移除认证中间件,等待 auth-module 创建
  16. // middleware: [authMiddleware],
  17. readOnly: true // 创建/更新/删除使用自定义路由
  18. });
  19. // 创建混合路由应用
  20. const app = new OpenAPIHono()
  21. .route('/', customRoutes) // 自定义业务路由(创建/更新/删除)
  22. .route('/', userCrudRoutes); // 通用CRUD路由(列表查询和获取详情)
  23. export default app;