import axios from "axios"; import { getToken, getAdminToken } from "../auth/tokenStorage"; // Change this to your server IP/domain export const API_BASE_URL = "https://5.181.0.112.nip.io"; const apiClient = axios.create({ baseURL: API_BASE_URL, timeout: 15000, headers: { "Content-Type": "application/json", }, }); // Request interceptor: attach JWT token apiClient.interceptors.request.use(async (config) => { const isAdminRoute = config.url?.includes("/api/v2/") || config.url?.includes("/api/v1/cabine/") || config.url?.includes("/api/v1/livreur/"); const token = isAdminRoute ? await getAdminToken() : await getToken(); if (token) { config.headers.Authorization = `Bearer ${token}`; } return config; }); // Response interceptor: handle common errors apiClient.interceptors.response.use( (response) => response, (error) => { if (error.response?.status === 401) { console.log("Session expirée"); } return Promise.reject(error); }, ); export default apiClient;