csatlakozas-mukodesdemodemodemo
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
import { apiClient } from './userApi';
|
||||
|
||||
/**
|
||||
* Create a new game
|
||||
* @param {Object} gameData - Game creation data
|
||||
* @param {string[]} gameData.deckids - Array of deck UUIDs
|
||||
* @param {number} gameData.maxplayers - Maximum players (2-8)
|
||||
* @param {number} gameData.logintype - 0=PUBLIC, 1=PRIVATE, 2=ORGANIZATION
|
||||
* @returns {Promise<Object>} Game data with gameCode
|
||||
*/
|
||||
export const createGame = async (gameData) => {
|
||||
try {
|
||||
const response = await apiClient.post('/games/start', gameData);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('Error creating game:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Join an existing game
|
||||
* @param {Object} joinData - Join game data
|
||||
* @param {string} joinData.gameCode - 6-character game code
|
||||
* @param {string} [joinData.playerName] - Player name (required for public games)
|
||||
* @returns {Promise<Object>} Game data with gameToken
|
||||
*/
|
||||
export const joinGame = async (joinData) => {
|
||||
try {
|
||||
const response = await apiClient.post('/games/join', joinData);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('Error joining game:', error);
|
||||
console.error('Join game error response:', error.response?.data);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Start the game (gamemaster only)
|
||||
* @param {string} gameId - Game UUID
|
||||
* @returns {Promise<Object>} Game data with board
|
||||
*/
|
||||
export const startGame = async (gameId) => {
|
||||
try {
|
||||
const response = await apiClient.post(`/games/${gameId}/start`);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('Error starting game:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get user's games
|
||||
* @returns {Promise<Array>} Array of games
|
||||
*/
|
||||
export const getMyGames = async () => {
|
||||
try {
|
||||
const response = await apiClient.get('/games/my-games');
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('Error fetching games:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get active public games
|
||||
* @returns {Promise<Array>} Array of active games
|
||||
*/
|
||||
export const getActiveGames = async () => {
|
||||
try {
|
||||
const response = await apiClient.get('/games/active');
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('Error fetching active games:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user