import Axios, { type AxiosRequestConfig, type AxiosResponse } from "axios"; import { getToken } from "./auth"; const http = Axios.create({ timeout: 1000000000, // เพิ่มค่า timeout headers: { "X-Requested-With": "XMLHttpRequest", }, }); http.interceptors.request.use( async function (config: AxiosRequestConfig) { // await keycloak.updateToken(1); config.headers = config.headers ?? {}; const token = await getToken(); if (token) config.headers.Authorization = `Bearer ${token}`; return config; }, function (error: any) { return Promise.reject(error); } ); http.interceptors.response.use( function (response: AxiosResponse) { return response; }, function (error: any) { if (typeof error !== undefined) { // eslint-disable-next-line no-prototype-builtins if (error.hasOwnProperty("response")) { console.log("error.response", error.response); if (error.response.status === 403) { window.location.href = "/error"; // Store.commit("SET_ERROR_MESSAGE", error.response.data.message); // Store.commit("REMOVE_ACCESS_TOKEN") } } } return Promise.reject(error); } ); export default http;