Skip to content
Snippets Groups Projects
Commit 86ef9760 authored by David Baker's avatar David Baker
Browse files

Split /room_keys/version into 2 servlets

parent 83e72bb2
No related branches found
No related tags found
No related merge requests found
...@@ -240,9 +240,9 @@ class RoomKeysServlet(RestServlet): ...@@ -240,9 +240,9 @@ class RoomKeysServlet(RestServlet):
defer.returnValue((200, {})) defer.returnValue((200, {}))
class RoomKeysVersionServlet(RestServlet): class RoomKeysNewVersionServlet(RestServlet):
PATTERNS = client_v2_patterns( PATTERNS = client_v2_patterns(
"/room_keys/version(/(?P<version>[^/]+))?$" "/room_keys/version$"
) )
def __init__(self, hs): def __init__(self, hs):
...@@ -250,12 +250,12 @@ class RoomKeysVersionServlet(RestServlet): ...@@ -250,12 +250,12 @@ class RoomKeysVersionServlet(RestServlet):
Args: Args:
hs (synapse.server.HomeServer): server hs (synapse.server.HomeServer): server
""" """
super(RoomKeysVersionServlet, self).__init__() super(RoomKeysNewVersionServlet, self).__init__()
self.auth = hs.get_auth() self.auth = hs.get_auth()
self.e2e_room_keys_handler = hs.get_e2e_room_keys_handler() self.e2e_room_keys_handler = hs.get_e2e_room_keys_handler()
@defer.inlineCallbacks @defer.inlineCallbacks
def on_POST(self, request, version): def on_POST(self, request):
""" """
Create a new backup version for this user's room_keys with the given Create a new backup version for this user's room_keys with the given
info. The version is allocated by the server and returned to the user info. The version is allocated by the server and returned to the user
...@@ -285,10 +285,6 @@ class RoomKeysVersionServlet(RestServlet): ...@@ -285,10 +285,6 @@ class RoomKeysVersionServlet(RestServlet):
"version": 12345 "version": 12345
} }
""" """
if version:
raise SynapseError(405, "Cannot POST to a specific version")
requester = yield self.auth.get_user_by_req(request, allow_guest=False) requester = yield self.auth.get_user_by_req(request, allow_guest=False)
user_id = requester.user.to_string() user_id = requester.user.to_string()
info = parse_json_object_from_request(request) info = parse_json_object_from_request(request)
...@@ -301,6 +297,20 @@ class RoomKeysVersionServlet(RestServlet): ...@@ -301,6 +297,20 @@ class RoomKeysVersionServlet(RestServlet):
# we deliberately don't have a PUT /version, as these things really should # we deliberately don't have a PUT /version, as these things really should
# be immutable to avoid people footgunning # be immutable to avoid people footgunning
class RoomKeysVersionServlet(RestServlet):
PATTERNS = client_v2_patterns(
"/room_keys/version(/(?P<version>[^/]+))?$"
)
def __init__(self, hs):
"""
Args:
hs (synapse.server.HomeServer): server
"""
super(RoomKeysVersionServlet, self).__init__()
self.auth = hs.get_auth()
self.e2e_room_keys_handler = hs.get_e2e_room_keys_handler()
@defer.inlineCallbacks @defer.inlineCallbacks
def on_GET(self, request, version): def on_GET(self, request, version):
""" """
...@@ -320,7 +330,6 @@ class RoomKeysVersionServlet(RestServlet): ...@@ -320,7 +330,6 @@ class RoomKeysVersionServlet(RestServlet):
"auth_data": "dGhpcyBzaG91bGQgYWN0dWFsbHkgYmUgZW5jcnlwdGVkIGpzb24K" "auth_data": "dGhpcyBzaG91bGQgYWN0dWFsbHkgYmUgZW5jcnlwdGVkIGpzb24K"
} }
""" """
requester = yield self.auth.get_user_by_req(request, allow_guest=False) requester = yield self.auth.get_user_by_req(request, allow_guest=False)
user_id = requester.user.to_string() user_id = requester.user.to_string()
...@@ -346,6 +355,8 @@ class RoomKeysVersionServlet(RestServlet): ...@@ -346,6 +355,8 @@ class RoomKeysVersionServlet(RestServlet):
HTTP/1.1 200 OK HTTP/1.1 200 OK
{} {}
""" """
if version is None:
raise SynapseError(400, "No version specified to delete")
requester = yield self.auth.get_user_by_req(request, allow_guest=False) requester = yield self.auth.get_user_by_req(request, allow_guest=False)
user_id = requester.user.to_string() user_id = requester.user.to_string()
...@@ -359,3 +370,4 @@ class RoomKeysVersionServlet(RestServlet): ...@@ -359,3 +370,4 @@ class RoomKeysVersionServlet(RestServlet):
def register_servlets(hs, http_server): def register_servlets(hs, http_server):
RoomKeysServlet(hs).register(http_server) RoomKeysServlet(hs).register(http_server)
RoomKeysVersionServlet(hs).register(http_server) RoomKeysVersionServlet(hs).register(http_server)
RoomKeysNewVersionServlet(hs).register(http_server)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment