From f5e8b4093a1527967423a3af70f2b95d4b05008f Mon Sep 17 00:00:00 2001
From: Ilion Beyst <ilion.beyst@gmail.com>
Date: Thu, 30 Dec 2021 23:40:37 +0100
Subject: prototype bots pages

---
 web/pw-server/src/routes/bots/index.svelte | 71 ++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)
 create mode 100644 web/pw-server/src/routes/bots/index.svelte

(limited to 'web/pw-server/src/routes/bots/index.svelte')

diff --git a/web/pw-server/src/routes/bots/index.svelte b/web/pw-server/src/routes/bots/index.svelte
new file mode 100644
index 0000000..775652b
--- /dev/null
+++ b/web/pw-server/src/routes/bots/index.svelte
@@ -0,0 +1,71 @@
+<script lang="ts" context="module">
+	import { get_session_token } from '$lib/auth';
+
+	/** @type {import('@sveltejs/kit').Load} */
+	export async function load({ params, fetch, session, stuff }) {
+		const token = get_session_token();
+		const res = await fetch('/api/bots/my_bots', {
+			headers: {
+				'Content-Type': 'application/json',
+				Authorization: `Bearer ${token}`
+			}
+		});
+
+		if (res.ok) {
+			return {
+				props: {
+					bots: await res.json()
+				}
+			};
+		}
+
+		return {
+			status: res.status,
+			error: new Error('Could not load bots')
+		};
+	}
+</script>
+
+<script lang="ts">
+	import { goto } from '$app/navigation';
+
+	export let bots: object[];
+	let name: string | undefined;
+
+	async function createBot() {
+		const token = get_session_token();
+		const res = await fetch('/api/bots', {
+			method: 'POST',
+			headers: {
+				'Content-Type': 'application/json',
+				Authorization: `Bearer ${token}`
+			},
+			body: JSON.stringify({
+				name: name
+			})
+		});
+
+		if (res.ok) {
+			let bot = await res.json();
+			goto(`/bots/${bot['id']}`);
+		} else {
+			new Error('creation failed');
+		}
+	}
+</script>
+
+<form on:submit|preventDefault={createBot}>
+	<label for="name">Name</label>
+	<input name="name" bind:value={name}/>
+	<button type="submit">Create</button>
+</form>
+
+<ul>
+	{#each bots as bot}
+		<li>
+			<a target="_blank" href={`bots/${bot['id']}`}>
+				{bot['name']}
+			</a>
+		</li>
+	{/each}
+</ul>
-- 
cgit v1.2.3

