import axios from 'axios'; import { auth } from './firebase'; import { API_BASE_URL } from '../utils/constants'; // Create axios instance with base URL const api = axios.create({ baseURL: API_BASE_URL, headers: { 'Content-Type': 'application/json', }, }); // Request interceptor — attach Firebase ID token api.interceptors.request.use( async (config) => { try { const user = auth.currentUser; if (user) { const token = await user.getIdToken(); config.headers.Authorization = `Bearer ${token}`; } } catch (error) { console.error('Error getting auth token:', error); } return config; }, (error) => Promise.reject(error) ); // Response interceptor — handle errors api.interceptors.response.use( (response) => response.data, (error) => { const message = error.response?.data?.error || error.message || 'Something went wrong'; console.error('API Error:', message); return Promise.reject({ message, status: error.response?.status }); } ); export default api;