index.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import { getUserId } from '@/utils';
  2. import { HEADER_USER_ID_KEY } from '@/utils/constants/index';
  3. import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';
  4. export type ResponseType<T = any> = {
  5. data: T;
  6. err_code: string | null;
  7. err_msg: string | null;
  8. success: boolean;
  9. };
  10. export type ApiResponse<T = any, D = any> = AxiosResponse<ResponseType<T>, D>;
  11. export type SuccessTuple<T = any, D = any> = [null, T, ResponseType<T>, ApiResponse<T, D>];
  12. export type FailedTuple<T = any, D = any> = [Error | AxiosError<T, D>, null, null, null];
  13. const ins = axios.create({
  14. baseURL: 'http://180.76.147.97:15780/',
  15. });
  16. const LONG_TIME_API: string[] = [
  17. '/db/add',
  18. '/db/test/connect',
  19. '/db/summary',
  20. '/params/file/load',
  21. '/chat/prepare',
  22. '/model/start',
  23. '/model/stop',
  24. '/editor/sql/run',
  25. '/sql/editor/submit',
  26. '/editor/chart/run',
  27. '/chart/editor/submit',
  28. '/document/upload',
  29. '/document/sync',
  30. '/agent/install',
  31. '/agent/uninstall',
  32. '/personal/agent/upload',
  33. ];
  34. ins.interceptors.request.use(request => {
  35. const isLongTimeApi = LONG_TIME_API.some(item => request.url && request.url.indexOf(item) >= 0);
  36. if (!request.timeout) {
  37. request.timeout = isLongTimeApi ? 60000 : 100000;
  38. }
  39. request.headers.set(HEADER_USER_ID_KEY, getUserId());
  40. return request;
  41. });
  42. export const GET = <Params = any, Response = any, D = any>(
  43. url: string,
  44. params?: Params,
  45. config?: AxiosRequestConfig<D>,
  46. ) => {
  47. return ins.get<Params, ApiResponse<Response>>(url, { params, ...config });
  48. };
  49. export const POST = <Data = any, Response = any, D = any>(url: string, data?: Data, config?: AxiosRequestConfig<D>) => {
  50. return ins.post<Data, ApiResponse<Response>>(url, data, config);
  51. };
  52. export const PATCH = <Data = any, Response = any, D = any>(
  53. url: string,
  54. data?: Data,
  55. config?: AxiosRequestConfig<D>,
  56. ) => {
  57. return ins.patch<Data, ApiResponse<Response>>(url, data, config);
  58. };
  59. export const PUT = <Data = any, Response = any, D = any>(url: string, data?: Data, config?: AxiosRequestConfig<D>) => {
  60. return ins.put<Data, ApiResponse<Response>>(url, data, config);
  61. };
  62. export const DELETE = <Params = any, Response = any, D = any>(
  63. url: string,
  64. params?: Params,
  65. config?: AxiosRequestConfig<D>,
  66. ) => {
  67. return ins.delete<Params, ApiResponse<Response>>(url, { params, ...config });
  68. };
  69. export * from './app';
  70. export * from './chat';
  71. export * from './evaluate';
  72. export * from './flow';
  73. export * from './knowledge';
  74. export * from './prompt';
  75. export * from './request';
  76. export * from './tools';
  77. export * from './user';