aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorMilo Casagrande <milo.casagrande@linaro.org>2015-01-14 16:17:51 +0100
committerMilo Casagrande <milo.casagrande@linaro.org>2015-01-14 16:17:51 +0100
commit6d2621a7df1d96efae16f71ec5fca5fed2a591b4 (patch)
treecacf79dbebc2bfc69d47aa66a4a0ee757c9a4789 /app
parent58115d3209685dcd43ba8abb6cc14a68b2e92555 (diff)
Add stub support for PUT requests.
Change-Id: I2cf891b63e2d4c540f51096bdbdc111a85e751ec
Diffstat (limited to 'app')
-rw-r--r--app/handlers/base.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/app/handlers/base.py b/app/handlers/base.py
index 546a83d..b4c92dc 100644
--- a/app/handlers/base.py
+++ b/app/handlers/base.py
@@ -174,6 +174,41 @@ class BaseHandler(tornado.web.RequestHandler):
return valid_content
@tornado.web.asynchronous
+ def put(self, *args, **kwargs):
+ self.executor.submit(
+ functools.partial(self.execute_post, *args, **kwargs)
+ ).add_done_callback(
+ lambda future: tornado.ioloop.IOLoop.instance().add_callback(
+ functools.partial(self._create_valid_response, future.result())
+ )
+ )
+
+ def execute_put(self, *args, **kwargs):
+ """Execute the PUT pre-operations."""
+ response = None
+
+ if self.validate_req_token("PUT"):
+ self._put(*args, **kwargs)
+ else:
+ response = hresponse.HandlerResponse(403)
+ response.reason = hcommon.NOT_VALID_TOKEN
+
+ return response
+
+ def _put(self, *args, **kwargs):
+ """Placeholder method - used internally.
+
+ This is called by the actual method that implements PUT request.
+ Subclasses should provide their own implementation.
+
+ It must return a `HandlerResponse` object with the appropriate status
+ code and if necessary its custom message.
+
+ :return A `HandlerResponse` object.
+ """
+ return hresponse.HandlerResponse(501)
+
+ @tornado.web.asynchronous
def post(self, *args, **kwargs):
self.executor.submit(
functools.partial(self.execute_post, *args, **kwargs)