diff options
Diffstat (limited to 'server/dispatcher.py')
-rw-r--r-- | server/dispatcher.py | 29 |
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) |