summaryrefslogtreecommitdiff
path: root/server/dispatcher.py
diff options
context:
space:
mode:
Diffstat (limited to 'server/dispatcher.py')
-rw-r--r--server/dispatcher.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/server/dispatcher.py b/server/dispatcher.py
new file mode 100644
index 0000000..36dd8da
--- /dev/null
+++ b/server/dispatcher.py
@@ -0,0 +1,29 @@
+import json
+import cherrypy
+from lib import uuid
+
+class Dispatcher(object):
+ def validate_uuid(self, uuid4):
+ if not uuid.validate(uuid4):
+ self.error(1, 'Invalid UUID in request')
+
+ def response(self, data):
+ # Pretty print responses
+ return json.dumps(data, sort_keys=True, indent=2, separators=(',', ': '))
+
+ def error(self, code, message='An application error occurred'):
+ raise cherrypy.HTTPError(400,
+ self.response({'error': {'code': int(code), 'message': str(message)}})
+ )
+
+ def GET(self, id=None):
+ raise cherrypy.HTTPError(405)
+
+ def POST(self, id, status):
+ raise cherrypy.HTTPError(405)
+
+ def PUT(self):
+ raise cherrypy.HTTPError(405)
+
+ def DELETE(self):
+ raise cherrypy.HTTPError(405)