fet : add game delete

This commit is contained in:
2024-12-31 12:37:57 +01:00
parent 9eaf7009c6
commit 201381342c
3 changed files with 36 additions and 12 deletions
+4
View File
@@ -17,9 +17,13 @@ export const handlers = {
}, },
start: (event: GameStartEvent) => { start: (event: GameStartEvent) => {
const gameStore = useGameStore(); const gameStore = useGameStore();
const userStore = useUserStore();
gameStore.game.started = true; gameStore.game.started = true;
gameStore.game.currentPlayer = event.currentPlayer; gameStore.game.currentPlayer = event.currentPlayer;
gameStore.currentWord = null; gameStore.currentWord = null;
if (userStore.self && userStore.self.id == event.currentPlayer.userId) {
void gameStore.getCurrentWord(gameStore.game.id);
}
}, },
delete: (event: GameDeleteEvent) => { delete: (event: GameDeleteEvent) => {
const gameStore = useGameStore(); const gameStore = useGameStore();
+14 -4
View File
@@ -30,6 +30,10 @@ function joinGame() {
gameStore.joinGame(gameId); gameStore.joinGame(gameId);
} }
function deleteGame() {
gameStore.deleteGame(gameId);
}
const isCurrentTurn = computed( const isCurrentTurn = computed(
() => () =>
userStore.self && userStore.self?.id == game.value?.currentPlayer?.userId userStore.self && userStore.self?.id == game.value?.currentPlayer?.userId
@@ -95,18 +99,24 @@ const selfPlayer = computed(() =>
</template> </template>
{{ game }} {{ game }}
<template v-if="userStore.self">
<template v-if="!game.started">
<input <input
type="button" type="button"
v-if="userStore.self && !game.started && game.ownerId == userStore.self.id" v-if="game.ownerId == userStore.self.id"
value="start" value="start"
@click="startGame" @click="startGame"
/> />
<input type="button" v-if="!selfPlayer" value="join" @click="joinGame" />
</template>
<input <input
v-if="game.ownerId == userStore.self.id"
type="button" type="button"
v-if="userStore.self && !game.started && !selfPlayer" value="delete"
value="join" @click="deleteGame"
@click="joinGame"
/> />
</template>
<div> <div>
Messages Messages
<span v-for="message in game.messages" :key="message.id"> <span v-for="message in game.messages" :key="message.id">
+10
View File
@@ -58,6 +58,16 @@ export const useGameStore = defineStore("game", {
} }
); );
}, },
async deleteGame(id: number) {
const config = useRuntimeConfig();
const data = await $fetch<GameResponseDTO>(
config.public.endpoint + `/games/` + id,
{
method: "DELETE",
credentials: "include",
}
);
},
async getCurrentWord(id: number) { async getCurrentWord(id: number) {
const config = useRuntimeConfig(); const config = useRuntimeConfig();
const data = await $fetch<string>( const data = await $fetch<string>(