init
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
import axios from 'axios';
|
||||
import type { Repository, RepositoryCreate, Review, ReviewStats } from '../types';
|
||||
|
||||
const API_BASE_URL = import.meta.env.VITE_API_URL || 'http://localhost:8000/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<Repository>(`/repositories/${id}`);
|
||||
return response.data;
|
||||
};
|
||||
|
||||
export const createRepository = async (data: RepositoryCreate) => {
|
||||
const response = await api.post<Repository>('/repositories', data);
|
||||
return response.data;
|
||||
};
|
||||
|
||||
export const updateRepository = async (id: number, data: Partial<RepositoryCreate>) => {
|
||||
const response = await api.put<Repository>(`/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<Review>(`/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<ReviewStats>('/reviews/stats/dashboard');
|
||||
return response.data;
|
||||
};
|
||||
|
||||
export default api;
|
||||
|
||||
Reference in New Issue
Block a user