router.ts 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /** @jsxImportSource https://esm.d8d.fun/hono@4.7.4/jsx */
  2. import { Hono } from 'hono'
  3. import { corsMiddleware, withAuth, setEnvVariables } from './middlewares.ts'
  4. import type { APIClient } from '@d8d-appcontainer/api'
  5. import { Auth } from '@d8d-appcontainer/auth';
  6. // 导入路由模块
  7. import { createAuthRoutes } from "./routes_auth.ts"
  8. import { createUserRoutes } from "./routes_users.ts"
  9. import { createKnowInfoRoutes } from "./routes_know_info.ts"
  10. import { createFileUploadRoutes } from "./routes_file_upload.ts"
  11. import { createFileCategoryRoutes } from "./routes_file_category.ts"
  12. import { createThemeRoutes } from "./routes_theme.ts"
  13. import { createChartRoutes } from "./routes_charts.ts"
  14. import { createMapRoutes } from "./routes_maps.ts"
  15. import { createSystemSettingsRoutes } from "./routes_system_settings.ts"
  16. import { createMessagesRoutes } from "./routes_messages.ts"
  17. import { createMigrationsRoutes } from "./routes_migrations.ts"
  18. import { createHomeRoutes } from "./routes_home.ts"
  19. import { createClassRoomRoutes } from "./routes_classroom.ts"
  20. import { createStockRoutes } from "./routes_stock.ts";
  21. import { createClassroomDataRoutes } from "./routes_classroom_data.ts";
  22. import { createSubmissionRoutes } from "./routes_submission_records.ts";
  23. import { createDateNotesRoutes } from "./routes_date_notes.ts";
  24. export function createRouter(apiClient: APIClient, moduleDir: string , auth: Auth) {
  25. const router = new Hono()
  26. // 添加CORS中间件
  27. router.use('/*', corsMiddleware)
  28. // 创建API路由
  29. const api = new Hono()
  30. // 设置环境变量
  31. api.use('*', setEnvVariables(apiClient, moduleDir, auth))
  32. // 注册所有路由
  33. api.route('/auth', createAuthRoutes(withAuth))
  34. api.route('/users', createUserRoutes(withAuth))
  35. api.route('/know-infos', createKnowInfoRoutes(withAuth))
  36. api.route('/upload', createFileUploadRoutes(withAuth))
  37. api.route('/file-categories', createFileCategoryRoutes(withAuth))
  38. api.route('/theme', createThemeRoutes(withAuth))
  39. api.route('/charts', createChartRoutes(withAuth))
  40. api.route('/map', createMapRoutes(withAuth))
  41. api.route('/settings', createSystemSettingsRoutes(withAuth))
  42. api.route('/messages', createMessagesRoutes(withAuth))
  43. api.route('/migrations', createMigrationsRoutes(withAuth))
  44. api.route('/home', createHomeRoutes(withAuth))
  45. api.route('/classroom', createClassRoomRoutes(withAuth))
  46. api.route('/stock', createStockRoutes(withAuth));
  47. api.route('/classroom-datas', createClassroomDataRoutes(withAuth));
  48. api.route('/submission-records', createSubmissionRoutes(withAuth));
  49. api.route('/date-notes', createDateNotesRoutes(withAuth));
  50. // 注册API路由到主路由器
  51. router.route('/api', api)
  52. return router
  53. }