From dcb5bacebf5eb516fd012aca7c85708b9dab0073 Mon Sep 17 00:00:00 2001 From: JP Appel Date: Wed, 25 Oct 2023 15:36:18 -0400 Subject: better error serverside error handling --- server/server.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'server') 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)) -- cgit v1.2.3