hrms-edm/Services/client/src/services/HttpService.ts

37 lines
857 B
TypeScript
Raw Normal View History

2023-11-23 08:47:44 +07:00
import type { AxiosInstance, InternalAxiosRequestConfig } from 'axios'
import axios from 'axios'
import KeyCloakService from '@/services/KeyCloakService'
const HttpMethods = {
GET: 'GET',
POST: 'POST',
DELETE: 'DELETE',
}
const _axios = axios.create()
const cb = (config: InternalAxiosRequestConfig) => {
config.headers.Authorization = `Bearer ${KeyCloakService.GetAccesToken()}`
return config
}
const configureAxiosKeycloak = (): void => {
_axios.interceptors.request.use(
(config: InternalAxiosRequestConfig): InternalAxiosRequestConfig => {
if (KeyCloakService.IsLoggedIn()) {
KeyCloakService.UpdateToken(cb(config))
}
return config
}
)
}
const getAxiosClient = (): AxiosInstance => _axios
const HttpService = {
HttpMethods,
configureAxiosKeycloak,
getAxiosClient,
}
export default HttpService