diff options
author | David Baker <dave@matrix.org> | 2015-01-28 12:51:05 +0000 |
---|---|---|
committer | David Baker <dave@matrix.org> | 2015-01-28 12:51:05 +0000 |
commit | c291a4d522afef7449311673b3863db5e484b6e8 (patch) | |
tree | f69458797cfba50c33448a7953e34f3527158154 /synapse/rest/client/v1/base.py | |
parent | Reset badge count to zero when last active time is bumped (diff) | |
parent | Initial cut of a shared base class for REST unit tests (diff) | |
download | synapse-c291a4d522afef7449311673b3863db5e484b6e8.tar.xz |
Merge branch 'develop' into pushers
Conflicts: synapse/handlers/events.py synapse/server.py
Diffstat (limited to 'synapse/rest/client/v1/base.py')
-rw-r--r-- | synapse/rest/client/v1/base.py | 40 |
1 files changed, 6 insertions, 34 deletions
diff --git a/synapse/rest/client/v1/base.py b/synapse/rest/client/v1/base.py index d005206b77..72332bdb10 100644 --- a/synapse/rest/client/v1/base.py +++ b/synapse/rest/client/v1/base.py @@ -13,7 +13,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -""" This module contains base REST classes for constructing REST servlets. """ +"""This module contains base REST classes for constructing client v1 servlets. +""" + +from synapse.http.servlet import RestServlet from synapse.api.urls import CLIENT_PREFIX from .transactions import HttpTransactionStore import re @@ -37,44 +40,13 @@ def client_path_pattern(path_regex): return re.compile("^" + CLIENT_PREFIX + path_regex) -class RestServlet(object): - - """ A Synapse REST Servlet. - - An implementing class can either provide its own custom 'register' method, - or use the automatic pattern handling provided by the base class. - - To use this latter, the implementing class instead provides a `PATTERN` - class attribute containing a pre-compiled regular expression. The automatic - register method will then use this method to register any of the following - instance methods associated with the corresponding HTTP method: - - on_GET - on_PUT - on_POST - on_DELETE - on_OPTIONS - - Automatically handles turning CodeMessageExceptions thrown by these methods - into the appropriate HTTP response. +class ClientV1RestServlet(RestServlet): + """A base Synapse REST Servlet for the client version 1 API. """ def __init__(self, hs): self.hs = hs - self.handlers = hs.get_handlers() self.builder_factory = hs.get_event_builder_factory() self.auth = hs.get_auth() self.txns = HttpTransactionStore() - - def register(self, http_server): - """ Register this servlet with the given HTTP server. """ - if hasattr(self, "PATTERN"): - pattern = self.PATTERN - - for method in ("GET", "PUT", "POST", "OPTIONS", "DELETE"): - if hasattr(self, "on_%s" % (method)): - method_handler = getattr(self, "on_%s" % (method)) - http_server.register_path(method, pattern, method_handler) - else: - raise NotImplementedError("RestServlet must register something.") |