From 510b3b942285157b1d41555cd61e0ee50b51b4a5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20Schr=C3=B6der?=
 <fschroeder@techfak.uni-bielefeld.de>
Date: Wed, 7 Feb 2024 15:00:57 +0100
Subject: [PATCH] Add ManageEnv class and refactor stop_env function

A new class called ManageEnv was introduced, encapsulating manager_id, env_id, and a reason. The asynchronous function stop_env in the game_server.py file was refactored to take an instance of this class as an argument instead of three separate arguments. Additionally, a trailing slash was added to the stop_env request URL in the overcooked_gui.py file.
---
 overcooked_simulator/game_server.py               | 12 ++++++++++--
 overcooked_simulator/gui_2d_vis/overcooked_gui.py |  2 +-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/overcooked_simulator/game_server.py b/overcooked_simulator/game_server.py
index c5bb5d25..d54341a5 100644
--- a/overcooked_simulator/game_server.py
+++ b/overcooked_simulator/game_server.py
@@ -675,6 +675,12 @@ class CreateEnvironmentConfig(BaseModel):
     seed: int
 
 
+class ManageEnv(BaseModel):
+    manager_id: str
+    env_id: str
+    reason: str
+
+
 class AdditionalPlayer(BaseModel):
     manager_id: str
     env_id: str
@@ -697,8 +703,10 @@ async def additional_player(creation: AdditionalPlayer) -> dict[str, PlayerInfo]
 
 
 @app.post("/manage/stop_env/")
-async def stop_env(manager_id: str, env_id: str, reason: str) -> str:
-    accept = environment_handler.stop_env(manager_id, env_id, reason)
+async def stop_env(manage_env: ManageEnv) -> str:
+    accept = environment_handler.stop_env(
+        manage_env.manager_id, manage_env.env_id, manage_env.reason
+    )
     if accept:
         raise HTTPException(
             status_code=403 if accept == 1 else 409,
diff --git a/overcooked_simulator/gui_2d_vis/overcooked_gui.py b/overcooked_simulator/gui_2d_vis/overcooked_gui.py
index a4d28c5c..8808d1db 100644
--- a/overcooked_simulator/gui_2d_vis/overcooked_gui.py
+++ b/overcooked_simulator/gui_2d_vis/overcooked_gui.py
@@ -860,7 +860,7 @@ class PyGameGUI:
 
     def finished_button_press(self):
         requests.post(
-            f"{self.request_url}/manage/stop_env",
+            f"{self.request_url}/manage/stop_env/",
             json={
                 "manager_id": self.manager_id,
                 "env_id": self.current_env_id,
-- 
GitLab