/
romatur
/
rn-dev
Обзор
Документация
Войти
/
romatur
/
rn-dev
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
rn-dev-project-api/src/services/ApiClient.ts
141 строка
4 KB
Roman.Turusov
init
08 апр 2026, 23:35
08 апр 2026, 23:35
c780c58
Код
Авторство
О чём код?
import { AxiosInstance, AxiosRequestConfig, InternalAxiosRequestConfig, } from 'axios' import AuthApi from './AuthApi' import CompletionApi from './CompletionApi' import DirectoriesApi from './DirectoriesApi' import DocumentsApi from './DocumentsApi' import FilesApi from './FilesApi' import INSVehicleApi from './INSVehicleApi' import MainApi from './MainApi' import OutsideApi from './OutsideApi' import ResultApi from './ResultApi' import RNGApi from './RNGApi' import ThermogramsApi from './ThermogramsApi' import requestInterceptor from '../interceptors/request' const ApiClient = (() => { let axiosInstance: AxiosInstance let accessToken: string | null = null let refreshToken: string | null = null let authClientId: string | null = null let authClientSecret: string | null = null return { init: (instance: AxiosInstance, authBaseUrlParam: string) => { axiosInstance = instance AuthApi.init(instance, authBaseUrlParam) DirectoriesApi.init(instance) DocumentsApi.init(instance) FilesApi.init(instance) INSVehicleApi.init(instance) ThermogramsApi.init(instance) RNGApi.init(instance) OutsideApi.init(instance) MainApi.init(instance) ResultApi.init(instance) CompletionApi.init(instance) }, getBaseUrl: () => { return axiosInstance.defaults.baseURL as string }, getHeaders: () => { return requestInterceptor({ headers: axiosInstance.defaults.headers.common, } as InternalAxiosRequestConfig).headers }, setEnvironment: (baseUrl: string) => { axiosInstance.defaults.baseURL = baseUrl }, setAuthClientId: (authClientIdParam: string | null) => { authClientId = authClientIdParam }, getAuthClientId: () => { return authClientId }, setAccessToken: (token: string | null) => { accessToken = token if (token === null) { delete axiosInstance.defaults.headers.common.Authorization } else { axiosInstance.defaults.headers.common.Authorization = `Bearer ${token}` } }, getAccessToken: () => { return accessToken }, setRefreshToken: (refreshTokenParam: string | null) => { refreshToken = refreshTokenParam }, getRefreshToken: () => { return refreshToken }, setClientSecret: (clientSecretParam: string | null) => { authClientSecret = clientSecretParam }, getClientSecret: () => { return authClientSecret }, setIsRefreshing: (isRefreshing: boolean) => { axiosInstance.defaults.isRefreshing = isRefreshing }, getIsRefreshing: () => { return axiosInstance.defaults.isRefreshing }, setIsRefreshingFailed: (isRefreshingFailed: boolean) => { axiosInstance.defaults.isRefreshingFailed = isRefreshingFailed }, getIsRefreshingFailed: () => { return axiosInstance.defaults.isRefreshingFailed }, request: (configParam: AxiosRequestConfig) => { return axiosInstance(configParam) }, auth: AuthApi as Omit<typeof AuthApi, 'init'>, files: FilesApi as Omit<typeof FilesApi, 'init'>, directories: DirectoriesApi as Omit<typeof DirectoriesApi, 'init'>, documents: DocumentsApi as Omit<typeof DocumentsApi, 'init'>, insVehicle: INSVehicleApi as Omit<typeof INSVehicleApi, 'init'>, thermograms: ThermogramsApi as Omit<typeof ThermogramsApi, 'init'>, rng: RNGApi as Omit<typeof RNGApi, 'init'>, outside: OutsideApi as Omit<typeof OutsideApi, 'init'>, main: MainApi as Omit<typeof MainApi, 'init'>, result: ResultApi as Omit<typeof ResultApi, 'init'>, completion: CompletionApi as Omit<typeof CompletionApi, 'init'>, } })() export default ApiClient