aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/server/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'server/server.py')
-rw-r--r--server/server.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/server/server.py b/server/server.py
index 0b04c27..eec80a1 100644
--- a/server/server.py
+++ b/server/server.py
@@ -3,9 +3,15 @@ import toggle_game
def recieve_game(game_json: str) -> dict:
+ """
+ Load game in from json string, returning game dict
+ Raises exception on invalid game
+ """
game = json.loads(game_json)
if game['size'] < 0 or game['size'] > 100:
raise Exception("Invalid Board size")
+ if game['size'] != len(game['board']):
+ raise Exception("Game size and Board size do not match")
if game['finished']:
raise Exception("The game is finished")
if game['human_turn']:
@@ -18,7 +24,11 @@ def recieve_game(game_json: str) -> dict:
def send_game(game: dict) -> str:
# TODO: mutate game
game_json = json.dumps(game)
- return game_json
+ return game_json.encode('utf-8')
+
+
+def play_game(game: dict) -> None:
+ pass
def application(env, start_response):
@@ -26,14 +36,12 @@ def application(env, start_response):
start_response('200 OK', headers)
if env['REQUEST_METHOD'] == 'POST':
- game = {'test': 0}
try:
- game = json.load(env['wsgi.input'])
+ game = recieve_game(env['wsgi.input'])
except json.JSONDecodeError:
return [json.dumps({'failure': True}).encode('utf-8')]
- game['modified'] = 'modified by the server :)'
- game_json = json.dumps(game)
- return [game_json.encode('utf-8')]
+ play_game(game)
+ return [send_game(game)]
return [json.dumps({'not_post': True}).encode('utf-8')]