front_foundation #9
@ -1,6 +1,7 @@
|
|||||||
import axios, { type AxiosError, type AxiosResponse } from "axios";
|
import axios, { type AxiosError, type AxiosResponse } from "axios";
|
||||||
import { store } from "@/main.ts";
|
import { store } from "@/main.ts";
|
||||||
import { addNewMessage, color } from "@/services/popupDisplayer.ts";
|
import { addNewMessage, color } from "@/services/popupDisplayer.ts";
|
||||||
|
import router from "@/router/router";
|
||||||
|
|
||||||
const axiosInstance = axios.create({
|
const axiosInstance = axios.create({
|
||||||
baseURL: import.meta.env.VITE_BACKEND_URL,
|
baseURL: import.meta.env.VITE_BACKEND_URL,
|
||||||
@ -31,7 +32,7 @@ axiosInstance.interceptors.response.use(
|
|||||||
console.error("Token refresh failed:", refreshError);
|
console.error("Token refresh failed:", refreshError);
|
||||||
localStorage.removeItem("accessToken");
|
localStorage.removeItem("accessToken");
|
||||||
localStorage.removeItem("refreshToken");
|
localStorage.removeItem("refreshToken");
|
||||||
window.location.href = "/login";
|
router.push("/login");
|
||||||
return Promise.reject(refreshError);
|
return Promise.reject(refreshError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -41,7 +42,10 @@ axiosInstance.interceptors.response.use(
|
|||||||
|
|
||||||
// TODO: spawn a error modal
|
// TODO: spawn a error modal
|
||||||
function defaultApiErrorHandler(err: AxiosError) {
|
function defaultApiErrorHandler(err: AxiosError) {
|
||||||
addNewMessage(err.message, color.Red);
|
const errorMessage =
|
||||||
|
(err.response?.data as { message?: string })?.message ??
|
||||||
|
err.message;
|
||||||
|
addNewMessage(errorMessage, color.Red);
|
||||||
}
|
}
|
||||||
|
|
||||||
function defaultApiSuccessHandler(response: AxiosResponse) {
|
function defaultApiSuccessHandler(response: AxiosResponse) {
|
||||||
@ -88,4 +92,6 @@ function deleteApi(
|
|||||||
.catch(onErrorHandler ?? defaultApiErrorHandler);
|
.catch(onErrorHandler ?? defaultApiErrorHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
export { axiosInstance, callApi, postApi, deleteApi };
|
//export { axiosInstance, callApi, postApi, deleteApi };
|
||||||
|
|
||||||
|
export{ axiosInstance, defaultApiErrorHandler, defaultApiSuccessHandler, callApi, postApi, deleteApi }
|
Loading…
x
Reference in New Issue
Block a user