From bd5dd17eb91f6501fb1944040e9d547c148a60aa Mon Sep 17 00:00:00 2001
From: Ilion Beyst <ilion.beyst@gmail.com>
Date: Sun, 6 Mar 2022 16:37:11 +0100
Subject: refactor: move bot api calls to submitpane

---
 web/pw-server/src/lib/components/SubmitPane.svelte | 46 +++++++++++++++++++---
 1 file changed, 40 insertions(+), 6 deletions(-)

(limited to 'web/pw-server/src/lib/components/SubmitPane.svelte')

diff --git a/web/pw-server/src/lib/components/SubmitPane.svelte b/web/pw-server/src/lib/components/SubmitPane.svelte
index 588a5e7..3c9fe22 100644
--- a/web/pw-server/src/lib/components/SubmitPane.svelte
+++ b/web/pw-server/src/lib/components/SubmitPane.svelte
@@ -2,6 +2,8 @@
   import { createEventDispatcher, onMount } from "svelte";
   import Select from "svelte-select";
 
+  export let editSession;
+
   let availableBots: object[] = [];
   let selectedOpponent = undefined;
   let botName: string | undefined = undefined;
@@ -21,16 +23,48 @@
 
   const dispatch = createEventDispatcher();
 
-  function submitBot() {
-    dispatch("submitBot", {
-      opponentName: selectedOpponent["name"],
+  async function submitBot() {
+    const opponentName = selectedOpponent["name"];
+
+    let response = await fetch("/api/submit_bot", {
+      method: "POST",
+      headers: {
+        "Content-Type": "application/json",
+      },
+      body: JSON.stringify({
+        code: editSession.getDocument().getValue(),
+        opponent_name: opponentName,
+      }),
     });
+
+    let responseData = await response.json();
+
+    if (response.ok) {
+      // object has a "match" key containing the match data
+      dispatch("matchCreated", responseData);
+    } else {
+      throw responseData;
+    }
   }
 
-  function saveBot() {
-    dispatch("saveBot", {
-      botName: botName,
+  async function saveBot() {
+    let response = await fetch("/api/save_bot", {
+      method: "POST",
+      headers: {
+        "Content-Type": "application/json",
+      },
+      body: JSON.stringify({
+        bot_name: botName,
+        code: editSession.getDocument().getValue(),
+      }),
     });
+
+    let responseData = await response.json();
+    if (response.ok) {
+      dispatch("botSaved", responseData);
+    } else {
+      throw responseData;
+    }
   }
 </script>
 
-- 
cgit v1.2.3

