sto-k-odnomu/src/services/api.js

45 lines
1.5 KiB
JavaScript
Raw Normal View History

2026-01-03 14:07:04 +00:00
import axios from 'axios';
const API_URL = import.meta.env.VITE_API_URL || 'http://localhost:3000';
const api = axios.create({
baseURL: API_URL,
withCredentials: true,
});
// Auth endpoints
export const authApi = {
createAnonymous: (name) => api.post('/auth/anonymous', { name }),
register: (email, password, name) => api.post('/auth/register', { email, password, name }),
login: (email, password) => api.post('/auth/login', { email, password }),
};
// Rooms endpoints
export const roomsApi = {
create: (hostId, questionPackId, settings) =>
api.post('/rooms', { hostId, questionPackId, settings }),
getByCode: (code) => api.get(`/rooms/${code}`),
join: (roomId, userId, name, role) =>
api.post(`/rooms/${roomId}/join`, { userId, name, role }),
2026-01-06 20:27:50 +00:00
updateQuestionPack: (roomId, questionPackId) =>
api.patch(`/rooms/${roomId}/question-pack`, { questionPackId }),
2026-01-03 14:07:04 +00:00
};
// Questions endpoints
export const questionsApi = {
createPack: (data) => api.post('/questions/packs', data),
getPacks: (userId) => api.get('/questions/packs', { params: { userId } }),
getPack: (id) => api.get(`/questions/packs/${id}`),
updatePack: (id, data) => api.put(`/questions/packs/${id}`, data),
deletePack: (id) => api.delete(`/questions/packs/${id}`),
};
// Stats endpoints
export const statsApi = {
createHistory: (data) => api.post('/stats/game-history', data),
getHistory: (userId) => api.get(`/stats/game-history/${userId}`),
getUserStats: (userId) => api.get(`/stats/user/${userId}`),
};
export default api;