front_foundation #9

Closed
mohamed_maoulainine wants to merge 181 commits from front_foundation into main
Showing only changes of commit de09ab2891 - Show all commits

View File

@ -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 }