Merge pull request #5070 from matrix-org/erikj/postpath
Remove usage of request.postpath
This commit is contained in:
commit
fd2fcb817c
|
@ -0,0 +1 @@
|
||||||
|
Add support for handling /verions, /voip and /push_rules client endpoints to client_reader worker.
|
|
@ -31,7 +31,7 @@ from .base import ClientV1RestServlet, client_path_patterns
|
||||||
|
|
||||||
|
|
||||||
class PushRuleRestServlet(ClientV1RestServlet):
|
class PushRuleRestServlet(ClientV1RestServlet):
|
||||||
PATTERNS = client_path_patterns("/pushrules/.*$")
|
PATTERNS = client_path_patterns("/(?P<path>pushrules/.*)$")
|
||||||
SLIGHTLY_PEDANTIC_TRAILING_SLASH_ERROR = (
|
SLIGHTLY_PEDANTIC_TRAILING_SLASH_ERROR = (
|
||||||
"Unrecognised request: You probably wanted a trailing slash")
|
"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
|
self._is_worker = hs.config.worker_app is not None
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_PUT(self, request):
|
def on_PUT(self, request, path):
|
||||||
if self._is_worker:
|
if self._is_worker:
|
||||||
raise Exception("Cannot handle PUT /push_rules on 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:
|
try:
|
||||||
priority_class = _priority_class_from_spec(spec)
|
priority_class = _priority_class_from_spec(spec)
|
||||||
except InvalidRuleException as e:
|
except InvalidRuleException as e:
|
||||||
|
@ -106,11 +106,11 @@ class PushRuleRestServlet(ClientV1RestServlet):
|
||||||
defer.returnValue((200, {}))
|
defer.returnValue((200, {}))
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_DELETE(self, request):
|
def on_DELETE(self, request, path):
|
||||||
if self._is_worker:
|
if self._is_worker:
|
||||||
raise Exception("Cannot handle DELETE /push_rules on 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)
|
requester = yield self.auth.get_user_by_req(request)
|
||||||
user_id = requester.user.to_string()
|
user_id = requester.user.to_string()
|
||||||
|
@ -130,7 +130,7 @@ class PushRuleRestServlet(ClientV1RestServlet):
|
||||||
raise
|
raise
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
def on_GET(self, request):
|
def on_GET(self, request, path):
|
||||||
requester = yield self.auth.get_user_by_req(request)
|
requester = yield self.auth.get_user_by_req(request)
|
||||||
user_id = requester.user.to_string()
|
user_id = requester.user.to_string()
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ class PushRuleRestServlet(ClientV1RestServlet):
|
||||||
|
|
||||||
rules = format_push_rules_for_user(requester.user, rules)
|
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 == []:
|
if path == []:
|
||||||
# we're a reference impl: pedantry is our job.
|
# we're a reference impl: pedantry is our job.
|
||||||
|
@ -157,7 +157,7 @@ class PushRuleRestServlet(ClientV1RestServlet):
|
||||||
else:
|
else:
|
||||||
raise UnrecognizedRequestError()
|
raise UnrecognizedRequestError()
|
||||||
|
|
||||||
def on_OPTIONS(self, _):
|
def on_OPTIONS(self, request, path):
|
||||||
return 200, {}
|
return 200, {}
|
||||||
|
|
||||||
def notify_user(self, user_id):
|
def notify_user(self, user_id):
|
||||||
|
|
Loading…
Reference in New Issue