aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/server/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'server/server.py')
-rw-r--r--server/server.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/server/server.py b/server/server.py
new file mode 100644
index 0000000..9f04e4e
--- /dev/null
+++ b/server/server.py
@@ -0,0 +1,42 @@
+import json
+import toggle_game
+
+
+def recieve_game(game_json: str) -> dict:
+ game = json.loads(game_json)
+ if game['size'] < 0 or game['size'] > 100:
+ raise Exception("Invalid Board size")
+ if game['finished']:
+ raise Exception("The game is finished")
+ if game['human_turn']:
+ raise Exception("Not the computer's turn")
+ if game['version'] != "0.0.0":
+ raise Exception("Invalid version")
+ return game
+
+
+def send_game(game: dict) -> str:
+ # TODO: mutate game
+ game_json = json.dumps(game)
+ return game_json
+
+
+def application(env, start_response):
+ headers = [('Content-Type', 'application/json')]
+ start_response('200 OK', headers)
+
+ if env['REQUEST_METHOD'] == 'POST':
+ game = {'test': 0}
+ try:
+ game = json.load(env['wsgi.input'])
+ except json.JSONDecodeError:
+ return [json.dumps({'failure': True}).encode('utf-8')]
+ game_json = json.dumps(game)
+ return [game_json.encode('utf-8')]
+
+ return [json.dumps({'not_post': True}).encode('utf-8')]
+
+
+
+def main():
+ pass