Multimodel_Rag / frontend /src /api /client.ts
Dhrumil Parikh
deploy GeminiRAG
cdc55f4
Raw
History Blame Contribute Delete
777 Bytes
import axios from "axios";
const api = axios.create({
baseURL: import.meta.env.VITE_API_URL || "http://localhost:8000",
});
// Attach token from module-level getter (set by AuthProvider)
let _getToken: (() => string | null) = () => null;
export function setTokenGetter(fn: () => string | null) { _getToken = fn; }
let _onUnauthorized: (() => void) = () => {};
export function setUnauthorizedHandler(fn: () => void) { _onUnauthorized = fn; }
api.interceptors.request.use((config) => {
const token = _getToken();
if (token) config.headers.Authorization = `Bearer ${token}`;
return config;
});
api.interceptors.response.use(
(r) => r,
(err) => {
if (err.response?.status === 401) _onUnauthorized();
return Promise.reject(err);
}
);
export default api;