import axios from 'axios'; // Function to get the token from local storage or state management const getToken = () => localStorage.getItem('authToken'); const apiClient = axios.create({ // Define the base URL for all API requests baseURL: 'https://accounts.business-harmony.com/swagger/index.html', // Set a timeout for requests (e.g., 10 seconds) timeout: 10000, // Set default headers headers: { 'Content-Type': 'application/json', Accept: 'application/json', }, }); // --- Request Interceptor --- // This runs BEFORE each request is sent apiClient.interceptors.request.use( (config) => { const token = getToken(); if (token) { // Add the authorization token to the headers config.headers.Authorization = `Bearer ${token}`; } return config; }, (error) => { // Handle request errors return Promise.reject(error); }, ); // --- Response Interceptor --- // This runs AFTER a response is received // TODO: set global post api logic // apiClient.interceptors.response.use( // (response) => { // // Any status code within the 2xx range will trigger this function // return response; // }, // (error) => { // // Handle common errors globally // if (error.response?.status === 401) { // // e.g., redirect to login page if unauthorized // console.error("Unauthorized! Redirecting to login..."); // // window.location.href = '/login'; // } // return Promise.reject(error); // } // ); export default apiClient;