diff options
| author | Jean-Pierre Appel <jeanpierre.appel01@gmail.com> | 2023-10-23 02:04:08 -0400 |
|---|---|---|
| committer | Jean-Pierre Appel <jeanpierre.appel01@gmail.com> | 2023-10-23 02:04:08 -0400 |
| commit | 5df9cf56c16eb9bff8570569aa4ee18b882518fa (patch) | |
| tree | e68e42406b52d11e56ac45bd40c5553e6b58b5b4 /server | |
| parent | 5f049f88c743925eb4962e3ad602dc7bc09b9c74 (diff) | |
attempts to parse game from request json
Diffstat (limited to 'server')
| -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')] |
