diff options
| author | JP Appel <jeanpierre.appel01@gmail.com> | 2023-10-25 15:36:18 -0400 |
|---|---|---|
| committer | JP Appel <jeanpierre.appel01@gmail.com> | 2023-10-25 15:36:18 -0400 |
| commit | dcb5bacebf5eb516fd012aca7c85708b9dab0073 (patch) | |
| tree | 93f5bc5b85be2fc463272b231d1d97078d94eceb | |
| parent | ea95e4099c76efe97f5d3159c659b968488ec762 (diff) | |
better error serverside error handling
| -rw-r--r-- | server/server.py | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/server/server.py b/server/server.py index 71b6f0f..c227434 100644 --- a/server/server.py +++ b/server/server.py @@ -73,8 +73,21 @@ def application(env, start_response): match env['REQUEST_METHOD'], env['PATH_INFO']: case ('GET', '/toggle/game/new'): queries = parse_query_params(env['QUERY_STRING']) - game = create_game(queries['size']) - response.append(send_game(game)) + + try: + size = int(queries['size']) + game = create_game(size) + response.append(send_game(game)) + + except KeyError: + status = '500 Internal Server Error' + error = {'Error': 'missing size parameter'} + response.append(json.dumps(error)).encode('utf-8') + + except ValueError: + status = '500 Internal Server Error' + error = {'Error': 'invalid game size'} + response.append(json.dumps(error)).encode('utf-8') case ('POST', '/toggle/game/play'): try: @@ -82,10 +95,10 @@ def application(env, start_response): except json.JSONDecodeError: status = '500 Internal Server Error' - decode_error = { + error = { 'Error': 'json parsing error, is your request formatter correctly' } - response.append(json.dumps(decode_error).encode('utf-8')) + response.append(json.dumps(error).encode('utf-8')) play_game(game) response.append(send_game(game)) |
