import axios from "axios"; import { getToken, getAdminToken } from "../auth/tokenStorage"; export const API_BASE_URL = process.env.EXPO_PUBLIC_API_URL ?? "https://mln-uber.club"; 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;