import axiosInstance from "./_axiosInstance"; import { AuthLoginResponse, CategoryResponse, Pagination, QuestionResponse, TestResponse, UserResponse, UserTestResponse, } from "./types"; export const get_questions = async ( page: number, test_id?: number, category_id?: number ) => { const response = await axiosInstance.get>( "/api/questions/", { params: { page, test_id, category_id, }, } ); return response.data; }; export const get_question = async (id: number) => { const response = await axiosInstance.get<{ data: QuestionResponse; }>(`/api/questions/${id}`); return response.data; }; export const get_current_user = async () => { const response = await axiosInstance.get<{ user: UserResponse; }>("/api/auth/me/"); return response.data; }; export const get_categories = async () => { const response = await axiosInstance.get<{ data: CategoryResponse[]; }>("/api/categories/"); return response.data; }; export const get_tests = async (page: number, category_id?: number) => { const response = await axiosInstance.get>( "/api/tests/", { params: { page, category_id, }, } ); return response.data; }; export const get_test = async (id: number) => { const response = await axiosInstance.get<{ data: TestResponse; }>(`/api/tests/${id}`); return response.data; } export const get_my_user_tests = async () => { const response = await axiosInstance.get<{ data: UserTestResponse[]; }>("/api/user-tests/me/"); return response.data; } export const get_user_test = async (id: number) => { const response = await axiosInstance.get<{ data: UserTestResponse; }>(`/api/user-tests/${id}`); return response.data; } export const post_login = async (email: string, password: string) => { const response = await axiosInstance.post( "/api/auth/login/", { email, password, } ); return response.data; }; export const post_start_random_test = async (min_difficulty: number, max_difficulty: number, category_id: number) => { const response = await axiosInstance.post<{data: UserTestResponse}>( "/api/user-tests/", { category_id, min_difficulty, max_difficulty, } ); return response.data; } export const post_start_test = async (test_id: number) => { const response = await axiosInstance.post<{ data: UserTestResponse }>( "/api/user-tests/by-test/", { test_id } ) return response.data; }