aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--server/server.py21
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))