diff options
| -rw-r--r-- | server/server.py | 20 |
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')] |
