Shivam311's picture
fix: use dynamic API base URL for HF Spaces deployment
fdca107
Raw
History Blame Contribute Delete
2.36 kB
import axios from 'axios';
const getApiBase = () => {
if (import.meta.env.VITE_API_URL) return import.meta.env.VITE_API_URL;
if (typeof window !== 'undefined' && window.location.hostname !== 'localhost' && window.location.hostname !== '127.0.0.1') {
return window.location.origin;
}
return 'http://localhost:8000';
};
const API_BASE = getApiBase();
export const api = axios.create({
baseURL: API_BASE,
timeout: 300000,
headers: { 'Content-Type': 'application/json' },
});
export const ingestRepo = (githubUrl) => api.post('/api/repo/ingest', { github_url: githubUrl });
export const getRepoStatus = (repoId) => api.get(`/api/repo/${repoId}/status`, { timeout: 30000 });
export const analyzeArchitecture = (repoId) => api.post('/api/architecture/analyze', { repo_id: repoId });
export const startArchitectureAnalysis = (repoId) => api.post('/api/architecture/analyze/start', { repo_id: repoId }, { timeout: 30000 });
export const getArchitectureJob = (jobId) => api.get(`/api/architecture/analyze/jobs/${jobId}`, { timeout: 30000 });
export const getCachedArchitecture = (repoId) => api.get(`/api/architecture/${repoId}/cached`, { timeout: 30000 });
export const getWorkflow = (repoId) => api.get(`/api/architecture/${repoId}/workflow`);
export const askQuestion = (repoId, question, chatHistory = []) =>
api.post('/api/assistant/ask', { repo_id: repoId, question, chat_history: chatHistory });
export const analyzeImpact = (repoId, targetFile) =>
api.post('/api/impact/analyze', { repo_id: repoId, target_file: targetFile });
export const generateDocs = (repoId, docType = 'onboarding') =>
api.post('/api/docs/generate', { repo_id: repoId, doc_type: docType });
export const startDocsGeneration = (repoId, docType = 'onboarding') =>
api.post('/api/docs/generate/start', { repo_id: repoId, doc_type: docType }, { timeout: 30000 });
export const getDocsJob = (jobId) => api.get(`/api/docs/generate/jobs/${jobId}`, { timeout: 30000 });
export const getMetrics = (repoId) => api.get(`/api/metrics/${repoId}`);
export const startMetrics = (repoId) => api.post(`/api/metrics/${repoId}/start`, {}, { timeout: 30000 });
export const getMetricsJob = (jobId) => api.get(`/api/metrics/jobs/${jobId}`, { timeout: 30000 });
export const getJobs = (repoId) => api.get('/api/jobs', { params: repoId ? { repo_id: repoId } : {}, timeout: 30000 });