sozsoft-platform/ui/src/services/api.service.ts

29 lines
880 B
TypeScript
Raw Normal View History

2026-02-24 20:44:16 +00:00
import { AUTH_API_NAME, DEFAULT_API_NAME } from '@/constants/app.constant'
2026-07-10 09:22:54 +00:00
import type { AxiosRequestConfig, AxiosResponse } from 'axios'
2026-02-24 20:44:16 +00:00
import authApiService from './authApi.service'
import platformApiService from './platformApi.service'
export interface Config {
apiName: string
}
export default {
fetchData<Response = unknown, Request = Record<string, unknown>>(
param: AxiosRequestConfig<Request>,
config?: Config,
2026-07-10 09:22:54 +00:00
): Promise<AxiosResponse<Response>> {
if (!config || config?.apiName === DEFAULT_API_NAME) {
return platformApiService(param) as Promise<AxiosResponse<Response>>
}
if (config?.apiName === AUTH_API_NAME) {
return authApiService(param).catch((errors) => {
console.error(errors)
throw errors
}) as Promise<AxiosResponse<Response>>
}
return Promise.reject(new Error('NO API DEFINED'))
2026-02-24 20:44:16 +00:00
},
}