Merge pull request #5070 from matrix-org/erikj/postpath

Remove usage of request.postpath
This commit is contained in:
Erik Johnston 2019-04-17 09:03:26 +01:00 committed by GitHub
commit fd2fcb817c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 8 deletions

1
changelog.d/5070.feature Normal file
View File

@ -0,0 +1 @@
Add support for handling /verions, /voip and /push_rules client endpoints to client_reader worker.

View File

@ -31,7 +31,7 @@ from .base import ClientV1RestServlet, client_path_patterns
class PushRuleRestServlet(ClientV1RestServlet):
PATTERNS = client_path_patterns("/pushrules/.*$")
PATTERNS = client_path_patterns("/(?P<path>pushrules/.*)$")
SLIGHTLY_PEDANTIC_TRAILING_SLASH_ERROR = (
"Unrecognised request: You probably wanted a trailing slash")
@ -42,11 +42,11 @@ class PushRuleRestServlet(ClientV1RestServlet):
self._is_worker = hs.config.worker_app is not None
@defer.inlineCallbacks
def on_PUT(self, request):
def on_PUT(self, request, path):
if self._is_worker:
raise Exception("Cannot handle PUT /push_rules on worker")
spec = _rule_spec_from_path([x.decode('utf8') for x in request.postpath])
spec = _rule_spec_from_path([x for x in path.split("/")])
try:
priority_class = _priority_class_from_spec(spec)
except InvalidRuleException as e:
@ -106,11 +106,11 @@ class PushRuleRestServlet(ClientV1RestServlet):
defer.returnValue((200, {}))
@defer.inlineCallbacks
def on_DELETE(self, request):
def on_DELETE(self, request, path):
if self._is_worker:
raise Exception("Cannot handle DELETE /push_rules on worker")
spec = _rule_spec_from_path([x.decode('utf8') for x in request.postpath])
spec = _rule_spec_from_path([x for x in path.split("/")])
requester = yield self.auth.get_user_by_req(request)
user_id = requester.user.to_string()
@ -130,7 +130,7 @@ class PushRuleRestServlet(ClientV1RestServlet):
raise
@defer.inlineCallbacks
def on_GET(self, request):
def on_GET(self, request, path):
requester = yield self.auth.get_user_by_req(request)
user_id = requester.user.to_string()
@ -141,7 +141,7 @@ class PushRuleRestServlet(ClientV1RestServlet):
rules = format_push_rules_for_user(requester.user, rules)
path = [x.decode('utf8') for x in request.postpath][1:]
path = [x for x in path.split("/")][1:]
if path == []:
# we're a reference impl: pedantry is our job.
@ -157,7 +157,7 @@ class PushRuleRestServlet(ClientV1RestServlet):
else:
raise UnrecognizedRequestError()
def on_OPTIONS(self, _):
def on_OPTIONS(self, request, path):
return 200, {}
def notify_user(self, user_id):