import axios from 'axios'; import type { Repository, RepositoryCreate, Review, ReviewStats } from '../types'; // Используем относительный путь для production или env для development const API_BASE_URL = import.meta.env.VITE_API_URL || '/api'; const api = axios.create({ baseURL: API_BASE_URL, headers: { 'Content-Type': 'application/json', }, }); // Repositories export const getRepositories = async () => { const response = await api.get<{ items: Repository[]; total: number }>('/repositories'); return response.data; }; export const getRepository = async (id: number) => { const response = await api.get(`/repositories/${id}`); return response.data; }; export const createRepository = async (data: RepositoryCreate) => { const response = await api.post('/repositories', data); return response.data; }; export const updateRepository = async (id: number, data: Partial) => { const response = await api.put(`/repositories/${id}`, data); return response.data; }; export const deleteRepository = async (id: number) => { const response = await api.delete(`/repositories/${id}`); return response.data; }; export const scanRepository = async (id: number) => { const response = await api.post(`/repositories/${id}/scan`); return response.data; }; // Reviews export const getReviews = async (params?: { skip?: number; limit?: number; repository_id?: number; status?: string; }) => { const response = await api.get<{ items: Review[]; total: number }>('/reviews', { params }); return response.data; }; export const getReview = async (id: number) => { const response = await api.get(`/reviews/${id}`); return response.data; }; export const retryReview = async (id: number) => { const response = await api.post(`/reviews/${id}/retry`); return response.data; }; export const getReviewStats = async () => { const response = await api.get('/reviews/stats/dashboard'); return response.data; }; export interface ReviewEvent { id: number; review_id: number; event_type: string; step?: string; message?: string; data?: any; created_at: string; } export const getReviewEvents = async (reviewId: number) => { const response = await api.get(`/reviews/${reviewId}/events`); return response.data; }; export const getBackendVersion = async () => { const response = await api.get<{ version: string }>('/version'); return response.data; }; export default api;