summary refs log tree commit diff
path: root/synapse/rest/client/v1/base.py
diff options
context:
space:
mode:
authorMark Haines <mark.haines@matrix.org>2015-01-23 14:09:51 +0000
committerMark Haines <mark.haines@matrix.org>2015-01-23 14:09:51 +0000
commit4be637cb120f00e5de99c12a79e908e2f26da8af (patch)
treec45fe4e767d585ddbfae9fc92d164e99651d2372 /synapse/rest/client/v1/base.py
parentMerge pull request #32 from matrix-org/remove_parse_id_from_hs (diff)
downloadsynapse-4be637cb120f00e5de99c12a79e908e2f26da8af.tar.xz
Extract the client v1 base RestServlet to a separate class
Diffstat (limited to 'synapse/rest/client/v1/base.py')
-rw-r--r--synapse/rest/client/v1/base.py40
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.")