summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorleonoverweel <l.overweel@gmail.com>2017-04-03 09:55:18 +0200
committerleonoverweel <l.overweel@gmail.com>2017-04-03 09:55:18 +0200
commit8801bbd2f3d1339f5a5ecad48e8f51f68b146604 (patch)
treefe0e843321d35d90e5d2402edae1dc65249e0c78
parentbb53cf703f87da8145196406e3ac81b3f0a1d579 (diff)
Fix error handling in HTTP requests
Now return the proper status code instead of 500
-rw-r--r--main.py8
-rw-r--r--opendc/util/rest.py5
2 files changed, 10 insertions, 3 deletions
diff --git a/main.py b/main.py
index 41799dae..ec404239 100644
--- a/main.py
+++ b/main.py
@@ -168,7 +168,7 @@ def _process_message(message):
response = request.process()
return (request, response)
-
+
except exceptions.AuthorizationTokenError as e:
response = rest.Response(401, 'Authorization error')
response.id = message['id']
@@ -188,6 +188,10 @@ def _process_message(message):
response.id = message['id']
traceback.print_exc()
- return ({'method': message['method'], 'path': message['path']}, response)
+ request = rest.Request()
+ request.method = message['method']
+ request.path = message['path']
+
+ return (request, response)
SOCKET_IO_CORE.run(FLASK_CORE_APP, host='0.0.0.0', port=8081)
diff --git a/opendc/util/rest.py b/opendc/util/rest.py
index 65747762..ad53f084 100644
--- a/opendc/util/rest.py
+++ b/opendc/util/rest.py
@@ -13,11 +13,14 @@ with open(sys.argv[1]) as file:
class Request(object):
"""WebSocket message to REST request mapping."""
- def __init__(self, message):
+ def __init__(self, message=None):
""""Initialize a Request from a socket message."""
# Get the Request parameters from the message
+ if message is None:
+ return
+
try:
self.message = message