aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/routes/lobbies/create/+page.svelte24
-rw-r--r--src/routes/lobbies/create/api/+server.ts14
2 files changed, 37 insertions, 1 deletions
diff --git a/src/routes/lobbies/create/+page.svelte b/src/routes/lobbies/create/+page.svelte
index 7d7efb9..2421b4c 100644
--- a/src/routes/lobbies/create/+page.svelte
+++ b/src/routes/lobbies/create/+page.svelte
@@ -1,12 +1,32 @@
<script lang="ts">
+ import { resolve } from '$app/paths';
+
let player_name = $state('');
let lobby_name = $state('');
let pin_enabled = $state(false);
let request_on_join_enabled = $state(false);
+ let lobby_uuid = $state('');
+
let create_disabled = $derived(player_name == '' || lobby_name == '');
- function create_click() {}
+ async function create_click() {
+ let request_body = {
+ host_player_name: player_name,
+ lobby_name: lobby_name,
+ pin_enabled: pin_enabled,
+ request_on_join_enabled: request_on_join_enabled
+ };
+
+ let resp = await fetch(resolve('/lobbies/create/api'), {
+ method: 'POST',
+ body: JSON.stringify(request_body)
+ });
+
+ let resp_json = await resp.json();
+
+ lobby_uuid = resp_json['uuid'];
+ }
</script>
<div class="flex w-screen flex-col items-center justify-center p-2">
@@ -71,3 +91,5 @@
</button>
</div>
</div>
+
+<h1>{lobby_uuid}</h1>
diff --git a/src/routes/lobbies/create/api/+server.ts b/src/routes/lobbies/create/api/+server.ts
new file mode 100644
index 0000000..53b1442
--- /dev/null
+++ b/src/routes/lobbies/create/api/+server.ts
@@ -0,0 +1,14 @@
+import { json } from '@sveltejs/kit';
+
+export async function POST({ request }) {
+ const body = await request.json();
+
+ const res = await fetch('http://127.0.0.1:8080/lobbies', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(body)
+ });
+
+ const lobby = await res.json();
+ return json(lobby);
+}