Spaces:
Sleeping
Sleeping
Download frontend/src/services/api.js from NitinBot001/SocialShare: direct link, hf CLI and curl.
- Browser
- Download file 1.05 kB
-
https://huggingface.co/spaces/NitinBot001/SocialShare/resolve/main/frontend/src/services/api.js
- Command line
-
hf download hf://spaces/NitinBot001/SocialShare/frontend/src/services/api.js
-
curl -L -o api.js https://huggingface.co/spaces/NitinBot001/SocialShare/resolve/main/frontend/src/services/api.js
1.05 kB
| 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; | |