import axios from "axios"; const api_url = import.meta.env.VITE_API_URL; console.log(api_url) const apiClient = axios.create({ baseURL: api_url, headers: { "Content-Type": "application/json", }, }); apiClient.interceptors.request.use( (config) => { const token = localStorage.getItem("authToken"); if (token) { config.headers.Authorization = `Bearer ${token}`; } return config; }, (error) => Promise.reject(error) ); apiClient.interceptors.response.use( (response) => response, (error) => { if (error.response?.status === 401) { localStorage.removeItem("authToken"); window.location.href = "/login"; } return Promise.reject(error); } ); const api = { get: async (endpoint, config = {}) => { const response = await apiClient.get(endpoint, { ...config }); return response.data; }, post: async (endpoint, data, config = {}) => { const response = await apiClient.post(endpoint, data, { ...config }); return response.data; }, put: async (endpoint, data, config = {}) => { const response = await apiClient.put(endpoint, data, { ...config }); return response.data; }, patch: async (endpoint, data, config = {}) => { const response = await apiClient.patch(endpoint, data, { ...config }); return response.data; }, delete: async (endpoint, config = {}) => { const response = await apiClient.delete(endpoint, { ...config }); return response.data; }, }; export default api;