From df61db2730b5e6b2796cbe58d1d224f1d5d6f085 Mon Sep 17 00:00:00 2001 From: lq64 Date: Wed, 10 Dec 2025 15:20:33 +0100 Subject: [PATCH] feat(api): FRO-14 Create Game (#14) Added functionality to create Game so that it creates a game in the Backend Co-authored-by: LQ63 Reviewed-on: https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Frontend/pulls/14 Reviewed-by: Janis Co-authored-by: lq64 Co-committed-by: lq64 --- src/views/CreateGame.vue | 17 ++++++++++++----- src/views/LoginView.vue | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/views/CreateGame.vue b/src/views/CreateGame.vue index 6544af4..01a2e73 100644 --- a/src/views/CreateGame.vue +++ b/src/views/CreateGame.vue @@ -2,7 +2,9 @@ import { ref } from 'vue'; import { useQuasar } from 'quasar'; import { useRouter } from 'vue-router'; +import axios from "axios"; +const api = window?.__RUNTIME_CONFIG__?.API_URL; const lobbyName = ref(''); const isPublic = ref(false); const playerAmount = ref(2); @@ -16,16 +18,21 @@ const createGameQuasar = async () => { return; } isLoading.value = true; - //TODO: Implement Logic to Create the Game and Redirect to Lobby - await delay(3000) - isLoading.value = false; + axios.post(`${api}/createGame`, {lobbyname: lobbyName.value, playeramount: playerAmount.value.toString()}, {withCredentials: true}).then((response) => { + const responseData = response.data + console.log("Response" + responseData.status) $q.notify({ - message: `Lobby "${lobbyName.value}" erfolgreich erstellt!`, + message: `Lobby "${lobbyName.value}" erfolgreich erstellt mit gameId ${responseData.gameId}!`, color: 'green-6', icon: 'check_circle', position: 'top' }); - router.push({ name: 'mainmenu'}); + router.push("/lobby") + }).catch((err) => { + console.log("ERROR:" + err) + }).finally(() => + isLoading.value = false + ) } diff --git a/src/views/LoginView.vue b/src/views/LoginView.vue index 50997d6..9a460c9 100644 --- a/src/views/LoginView.vue +++ b/src/views/LoginView.vue @@ -80,7 +80,7 @@ const onSubmit = () => { loginError.value = '' axios.post(`${api}/login`, {username: username.value, password: password.value}, {withCredentials: true}).then((response) => { uInfo.setUserInfo(response.data.user.username, response.data.user.id) - router.push("/") + router.push("/mainmenu") }).catch(() => { loginError.value = 'Invalid username or password' }).finally(() =>