api.ts 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. import { hc } from 'hono/client';
  2. import type {
  3. AuthRoutes,
  4. UserRoutes,
  5. RoleRoutes,
  6. FileRoutes,
  7. CompanyRoutes,
  8. JobRoutes,
  9. ApplicationRoutes,
  10. FavoriteRoutes,
  11. ViewRoutes,
  12. CompanyImageRoutes,
  13. SilverTalentsRoutes,
  14. ElderlyUniversityRoutes,
  15. PolicyNewsRoutes,
  16. UserPreferenceRoutes,
  17. HomeRoutes,
  18. SilverUsersKnowledgesRoutes,
  19. SilverUsersKnowledgeCategoriesRoutes,
  20. SilverUsersKnowledgeTagsRoutes,
  21. SilverUsersKnowledgeStatsRoutes,
  22. SilverUsersKnowledgeInteractionsRoutes,
  23. SilverUsersKnowledgeRankingsRoutes,
  24. SilverTalentsAdminRoutes,
  25. MyCompanyRoutes,
  26. SilverJobRoutes,
  27. CompanyCertificationRoutes,
  28. SilverCompaniesRoutes,
  29. HomeIconRoutes,
  30. SilverKnowledgeRoutes
  31. } from '@/server/api';
  32. import { axiosFetch } from './utils/axios'
  33. // 客户端实例 - 严格按照RPC规范命名
  34. export const authClient = hc<AuthRoutes>('/', {
  35. fetch: axiosFetch,
  36. }).api.v1.auth;
  37. export const userClient = hc<UserRoutes>('/', {
  38. fetch: axiosFetch,
  39. }).api.v1.users;
  40. export const roleClient = hc<RoleRoutes>('/', {
  41. fetch: axiosFetch,
  42. }).api.v1.roles;
  43. export const fileClient = hc<FileRoutes>('/', {
  44. fetch: axiosFetch,
  45. }).api.v1.files;
  46. // 企业信息客户端 - 新增
  47. export const myCompanyClient = hc<MyCompanyRoutes>('/', {
  48. fetch: axiosFetch,
  49. }).api.v1['companies'].my;
  50. // 银龄岗具体资源客户端(调整为标准格式)
  51. export const companyClient = hc<CompanyRoutes>('/', {
  52. fetch: axiosFetch,
  53. }).api.v1['silver-jobs'].companies;
  54. export const jobClient = hc<JobRoutes>('/', {
  55. fetch: axiosFetch,
  56. }).api.v1['silver-jobs'].jobs;
  57. export const applicationClient = hc<ApplicationRoutes>('/', {
  58. fetch: axiosFetch,
  59. }).api.v1['silver-jobs'].applications;
  60. export const favoriteClient = hc<FavoriteRoutes>('/', {
  61. fetch: axiosFetch,
  62. }).api.v1['silver-jobs'].favorites;
  63. export const viewClient = hc<ViewRoutes>('/', {
  64. fetch: axiosFetch,
  65. }).api.v1['silver-jobs'].views;
  66. export const companyImageClient = hc<CompanyImageRoutes>('/', {
  67. fetch: axiosFetch,
  68. }).api.v1['silver-jobs']['company-images'];
  69. // 银龄用户资源客户端 - 重构为集中的对象,避免过深实例化
  70. export const silverUsersClient = {
  71. knowledges: hc<SilverUsersKnowledgesRoutes>('/', {
  72. fetch: axiosFetch,
  73. }).api.v1['silver-users'].knowledges,
  74. ['knowledge-categories']: hc<SilverUsersKnowledgeCategoriesRoutes>('/', {
  75. fetch: axiosFetch,
  76. }).api.v1['silver-users']['knowledge-categories'],
  77. ['knowledge-tags']: hc<SilverUsersKnowledgeTagsRoutes>('/', {
  78. fetch: axiosFetch,
  79. }).api.v1['silver-users']['knowledge-tags'],
  80. ['knowledge-stats']: hc<SilverUsersKnowledgeStatsRoutes>('/', {
  81. fetch: axiosFetch,
  82. }).api.v1['silver-users']['knowledge-stats'],
  83. ['knowledge-interactions']: hc<SilverUsersKnowledgeInteractionsRoutes>('/', {
  84. fetch: axiosFetch,
  85. }).api.v1['silver-users']['knowledge-interactions'],
  86. ['knowledge-rankings']: hc<SilverUsersKnowledgeRankingsRoutes>('/', {
  87. fetch: axiosFetch,
  88. }).api.v1['silver-users']['knowledge-rankings'],
  89. profiles: hc<any>('/', {
  90. fetch: axiosFetch,
  91. }).api.v1['silver-users'].profiles
  92. };
  93. // 其他资源客户端
  94. export const elderlyUniversityClient = hc<ElderlyUniversityRoutes>('/', {
  95. fetch: axiosFetch,
  96. }).api.v1['elderly-universities'];
  97. export const policyNewsClient = hc<PolicyNewsRoutes>('/', {
  98. fetch: axiosFetch,
  99. }).api.v1['policy-news'];
  100. export const userPreferenceClient = hc<UserPreferenceRoutes>('/', {
  101. fetch: axiosFetch,
  102. }).api.v1['user-preferences'];
  103. // 首页API客户端
  104. export const homeClient = hc<HomeRoutes>('/', {
  105. fetch: axiosFetch,
  106. }).api.v1.home;
  107. export const silverTalentsClient = hc<SilverTalentsRoutes>('/', {
  108. fetch: axiosFetch,
  109. }).api.v1['silver-talents']
  110. // 银龄库管理客户端
  111. export const silverTalentsAdminClient = hc<SilverTalentsAdminRoutes>('/', {
  112. fetch: axiosFetch,
  113. }).api.v1['admin']['silver-talents']
  114. // 公司认证管理客户端
  115. export const companyCertificationClient = hc<CompanyCertificationRoutes>('/', {
  116. fetch: axiosFetch,
  117. }).api.v1['company-certification']
  118. // 银龄公司客户端
  119. export const silverCompaniesClient = hc<SilverCompaniesRoutes>('/', {
  120. fetch: axiosFetch,
  121. }).api.v1['silver-companies']
  122. // 银龄岗管理客户端
  123. export const silverJobClient = hc<SilverJobRoutes>('/', {
  124. fetch: axiosFetch,
  125. }).api.v1['silver-jobs']
  126. // 首页图标管理客户端
  127. export const homeIconClient = hc<HomeIconRoutes>('/', {
  128. fetch: axiosFetch,
  129. }).api.v1['home-icons']
  130. // 银龄智库管理客户端
  131. export const silverKnowledgeClient = hc<SilverKnowledgeRoutes>('/', {
  132. fetch: axiosFetch,
  133. }).api.v1['silver-knowledges']