Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 9c41ba4

Browse files
committed
Port rest.client.v2
1 parent af5d0eb commit 9c41ba4

23 files changed

+361
-505
lines changed

synapse/rest/client/v2_alpha/_base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def on_POST(self, request):
7878
"""
7979

8080
def wrapped(*args, **kwargs):
81-
res = defer.maybeDeferred(orig, *args, **kwargs)
81+
res = defer.ensureDeferred(orig(*args, **kwargs))
8282
res.addErrback(_catch_incomplete_interactive_auth)
8383
return res
8484

synapse/rest/client/v2_alpha/account.py

Lines changed: 51 additions & 68 deletions
Large diffs are not rendered by default.

synapse/rest/client/v2_alpha/account_data.py

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515

1616
import logging
1717

18-
from twisted.internet import defer
19-
2018
from synapse.api.errors import AuthError, NotFoundError, SynapseError
2119
from synapse.http.servlet import RestServlet, parse_json_object_from_request
2220

@@ -41,29 +39,27 @@ def __init__(self, hs):
4139
self.store = hs.get_datastore()
4240
self.notifier = hs.get_notifier()
4341

44-
@defer.inlineCallbacks
45-
def on_PUT(self, request, user_id, account_data_type):
46-
requester = yield self.auth.get_user_by_req(request)
42+
async def on_PUT(self, request, user_id, account_data_type):
43+
requester = await self.auth.get_user_by_req(request)
4744
if user_id != requester.user.to_string():
4845
raise AuthError(403, "Cannot add account data for other users.")
4946

5047
body = parse_json_object_from_request(request)
5148

52-
max_id = yield self.store.add_account_data_for_user(
49+
max_id = await self.store.add_account_data_for_user(
5350
user_id, account_data_type, body
5451
)
5552

5653
self.notifier.on_new_event("account_data_key", max_id, users=[user_id])
5754

5855
return 200, {}
5956

60-
@defer.inlineCallbacks
61-
def on_GET(self, request, user_id, account_data_type):
62-
requester = yield self.auth.get_user_by_req(request)
57+
async def on_GET(self, request, user_id, account_data_type):
58+
requester = await self.auth.get_user_by_req(request)
6359
if user_id != requester.user.to_string():
6460
raise AuthError(403, "Cannot get account data for other users.")
6561

66-
event = yield self.store.get_global_account_data_by_type_for_user(
62+
event = await self.store.get_global_account_data_by_type_for_user(
6763
account_data_type, user_id
6864
)
6965

@@ -91,9 +87,8 @@ def __init__(self, hs):
9187
self.store = hs.get_datastore()
9288
self.notifier = hs.get_notifier()
9389

94-
@defer.inlineCallbacks
95-
def on_PUT(self, request, user_id, room_id, account_data_type):
96-
requester = yield self.auth.get_user_by_req(request)
90+
async def on_PUT(self, request, user_id, room_id, account_data_type):
91+
requester = await self.auth.get_user_by_req(request)
9792
if user_id != requester.user.to_string():
9893
raise AuthError(403, "Cannot add account data for other users.")
9994

@@ -106,21 +101,20 @@ def on_PUT(self, request, user_id, room_id, account_data_type):
106101
" Use /rooms/!roomId:server.name/read_markers",
107102
)
108103

109-
max_id = yield self.store.add_account_data_to_room(
104+
max_id = await self.store.add_account_data_to_room(
110105
user_id, room_id, account_data_type, body
111106
)
112107

113108
self.notifier.on_new_event("account_data_key", max_id, users=[user_id])
114109

115110
return 200, {}
116111

117-
@defer.inlineCallbacks
118-
def on_GET(self, request, user_id, room_id, account_data_type):
119-
requester = yield self.auth.get_user_by_req(request)
112+
async def on_GET(self, request, user_id, room_id, account_data_type):
113+
requester = await self.auth.get_user_by_req(request)
120114
if user_id != requester.user.to_string():
121115
raise AuthError(403, "Cannot get account data for other users.")
122116

123-
event = yield self.store.get_account_data_for_room_and_type(
117+
event = await self.store.get_account_data_for_room_and_type(
124118
user_id, room_id, account_data_type
125119
)
126120

synapse/rest/client/v2_alpha/account_validity.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515

1616
import logging
1717

18-
from twisted.internet import defer
19-
2018
from synapse.api.errors import AuthError, SynapseError
2119
from synapse.http.server import finish_request
2220
from synapse.http.servlet import RestServlet
@@ -45,13 +43,12 @@ def __init__(self, hs):
4543
self.success_html = hs.config.account_validity.account_renewed_html_content
4644
self.failure_html = hs.config.account_validity.invalid_token_html_content
4745

48-
@defer.inlineCallbacks
49-
def on_GET(self, request):
46+
async def on_GET(self, request):
5047
if b"token" not in request.args:
5148
raise SynapseError(400, "Missing renewal token")
5249
renewal_token = request.args[b"token"][0]
5350

54-
token_valid = yield self.account_activity_handler.renew_account(
51+
token_valid = await self.account_activity_handler.renew_account(
5552
renewal_token.decode("utf8")
5653
)
5754

@@ -67,7 +64,6 @@ def on_GET(self, request):
6764
request.setHeader(b"Content-Length", b"%d" % (len(response),))
6865
request.write(response.encode("utf8"))
6966
finish_request(request)
70-
defer.returnValue(None)
7167

7268

7369
class AccountValiditySendMailServlet(RestServlet):
@@ -85,18 +81,17 @@ def __init__(self, hs):
8581
self.auth = hs.get_auth()
8682
self.account_validity = self.hs.config.account_validity
8783

88-
@defer.inlineCallbacks
89-
def on_POST(self, request):
84+
async def on_POST(self, request):
9085
if not self.account_validity.renew_by_email_enabled:
9186
raise AuthError(
9287
403, "Account renewal via email is disabled on this server."
9388
)
9489

95-
requester = yield self.auth.get_user_by_req(request, allow_expired=True)
90+
requester = await self.auth.get_user_by_req(request, allow_expired=True)
9691
user_id = requester.user.to_string()
97-
yield self.account_activity_handler.send_renewal_email_to_user(user_id)
92+
await self.account_activity_handler.send_renewal_email_to_user(user_id)
9893

99-
defer.returnValue((200, {}))
94+
return 200, {}
10095

10196

10297
def register_servlets(hs, http_server):

synapse/rest/client/v2_alpha/auth.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515

1616
import logging
1717

18-
from twisted.internet import defer
19-
2018
from synapse.api.constants import LoginType
2119
from synapse.api.errors import SynapseError
2220
from synapse.api.urls import CLIENT_API_PREFIX
@@ -171,8 +169,7 @@ def on_GET(self, request, stagetype):
171169
else:
172170
raise SynapseError(404, "Unknown auth stage type")
173171

174-
@defer.inlineCallbacks
175-
def on_POST(self, request, stagetype):
172+
async def on_POST(self, request, stagetype):
176173

177174
session = parse_string(request, "session")
178175
if not session:
@@ -186,7 +183,7 @@ def on_POST(self, request, stagetype):
186183

187184
authdict = {"response": response, "session": session}
188185

189-
success = yield self.auth_handler.add_oob_auth(
186+
success = await self.auth_handler.add_oob_auth(
190187
LoginType.RECAPTCHA, authdict, self.hs.get_ip_from_request(request)
191188
)
192189

@@ -215,7 +212,7 @@ def on_POST(self, request, stagetype):
215212
session = request.args["session"][0]
216213
authdict = {"session": session}
217214

218-
success = yield self.auth_handler.add_oob_auth(
215+
success = await self.auth_handler.add_oob_auth(
219216
LoginType.TERMS, authdict, self.hs.get_ip_from_request(request)
220217
)
221218

synapse/rest/client/v2_alpha/capabilities.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
# limitations under the License.
1515
import logging
1616

17-
from twisted.internet import defer
18-
1917
from synapse.api.room_versions import KNOWN_ROOM_VERSIONS
2018
from synapse.http.servlet import RestServlet
2119

@@ -40,10 +38,9 @@ def __init__(self, hs):
4038
self.auth = hs.get_auth()
4139
self.store = hs.get_datastore()
4240

43-
@defer.inlineCallbacks
44-
def on_GET(self, request):
45-
requester = yield self.auth.get_user_by_req(request, allow_guest=True)
46-
user = yield self.store.get_user_by_id(requester.user.to_string())
41+
async def on_GET(self, request):
42+
requester = await self.auth.get_user_by_req(request, allow_guest=True)
43+
user = await self.store.get_user_by_id(requester.user.to_string())
4744
change_password = bool(user["password_hash"])
4845

4946
response = {

synapse/rest/client/v2_alpha/devices.py

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515

1616
import logging
1717

18-
from twisted.internet import defer
19-
2018
from synapse.api import errors
2119
from synapse.http.servlet import (
2220
RestServlet,
@@ -42,10 +40,9 @@ def __init__(self, hs):
4240
self.auth = hs.get_auth()
4341
self.device_handler = hs.get_device_handler()
4442

45-
@defer.inlineCallbacks
46-
def on_GET(self, request):
47-
requester = yield self.auth.get_user_by_req(request, allow_guest=True)
48-
devices = yield self.device_handler.get_devices_by_user(
43+
async def on_GET(self, request):
44+
requester = await self.auth.get_user_by_req(request, allow_guest=True)
45+
devices = await self.device_handler.get_devices_by_user(
4946
requester.user.to_string()
5047
)
5148
return 200, {"devices": devices}
@@ -67,9 +64,8 @@ def __init__(self, hs):
6764
self.auth_handler = hs.get_auth_handler()
6865

6966
@interactive_auth_handler
70-
@defer.inlineCallbacks
71-
def on_POST(self, request):
72-
requester = yield self.auth.get_user_by_req(request)
67+
async def on_POST(self, request):
68+
requester = await self.auth.get_user_by_req(request)
7369

7470
try:
7571
body = parse_json_object_from_request(request)
@@ -84,11 +80,11 @@ def on_POST(self, request):
8480

8581
assert_params_in_dict(body, ["devices"])
8682

87-
yield self.auth_handler.validate_user_via_ui_auth(
83+
await self.auth_handler.validate_user_via_ui_auth(
8884
requester, body, self.hs.get_ip_from_request(request)
8985
)
9086

91-
yield self.device_handler.delete_devices(
87+
await self.device_handler.delete_devices(
9288
requester.user.to_string(), body["devices"]
9389
)
9490
return 200, {}
@@ -108,18 +104,16 @@ def __init__(self, hs):
108104
self.device_handler = hs.get_device_handler()
109105
self.auth_handler = hs.get_auth_handler()
110106

111-
@defer.inlineCallbacks
112-
def on_GET(self, request, device_id):
113-
requester = yield self.auth.get_user_by_req(request, allow_guest=True)
114-
device = yield self.device_handler.get_device(
107+
async def on_GET(self, request, device_id):
108+
requester = await self.auth.get_user_by_req(request, allow_guest=True)
109+
device = await self.device_handler.get_device(
115110
requester.user.to_string(), device_id
116111
)
117112
return 200, device
118113

119114
@interactive_auth_handler
120-
@defer.inlineCallbacks
121-
def on_DELETE(self, request, device_id):
122-
requester = yield self.auth.get_user_by_req(request)
115+
async def on_DELETE(self, request, device_id):
116+
requester = await self.auth.get_user_by_req(request)
123117

124118
try:
125119
body = parse_json_object_from_request(request)
@@ -132,19 +126,18 @@ def on_DELETE(self, request, device_id):
132126
else:
133127
raise
134128

135-
yield self.auth_handler.validate_user_via_ui_auth(
129+
await self.auth_handler.validate_user_via_ui_auth(
136130
requester, body, self.hs.get_ip_from_request(request)
137131
)
138132

139-
yield self.device_handler.delete_device(requester.user.to_string(), device_id)
133+
await self.device_handler.delete_device(requester.user.to_string(), device_id)
140134
return 200, {}
141135

142-
@defer.inlineCallbacks
143-
def on_PUT(self, request, device_id):
144-
requester = yield self.auth.get_user_by_req(request, allow_guest=True)
136+
async def on_PUT(self, request, device_id):
137+
requester = await self.auth.get_user_by_req(request, allow_guest=True)
145138

146139
body = parse_json_object_from_request(request)
147-
yield self.device_handler.update_device(
140+
await self.device_handler.update_device(
148141
requester.user.to_string(), device_id, body
149142
)
150143
return 200, {}

synapse/rest/client/v2_alpha/filter.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515

1616
import logging
1717

18-
from twisted.internet import defer
19-
2018
from synapse.api.errors import AuthError, NotFoundError, StoreError, SynapseError
2119
from synapse.http.servlet import RestServlet, parse_json_object_from_request
2220
from synapse.types import UserID
@@ -35,10 +33,9 @@ def __init__(self, hs):
3533
self.auth = hs.get_auth()
3634
self.filtering = hs.get_filtering()
3735

38-
@defer.inlineCallbacks
39-
def on_GET(self, request, user_id, filter_id):
36+
async def on_GET(self, request, user_id, filter_id):
4037
target_user = UserID.from_string(user_id)
41-
requester = yield self.auth.get_user_by_req(request)
38+
requester = await self.auth.get_user_by_req(request)
4239

4340
if target_user != requester.user:
4441
raise AuthError(403, "Cannot get filters for other users")
@@ -52,7 +49,7 @@ def on_GET(self, request, user_id, filter_id):
5249
raise SynapseError(400, "Invalid filter_id")
5350

5451
try:
55-
filter_collection = yield self.filtering.get_user_filter(
52+
filter_collection = await self.filtering.get_user_filter(
5653
user_localpart=target_user.localpart, filter_id=filter_id
5754
)
5855
except StoreError as e:
@@ -72,11 +69,10 @@ def __init__(self, hs):
7269
self.auth = hs.get_auth()
7370
self.filtering = hs.get_filtering()
7471

75-
@defer.inlineCallbacks
76-
def on_POST(self, request, user_id):
72+
async def on_POST(self, request, user_id):
7773

7874
target_user = UserID.from_string(user_id)
79-
requester = yield self.auth.get_user_by_req(request)
75+
requester = await self.auth.get_user_by_req(request)
8076

8177
if target_user != requester.user:
8278
raise AuthError(403, "Cannot create filters for other users")
@@ -87,7 +83,7 @@ def on_POST(self, request, user_id):
8783
content = parse_json_object_from_request(request)
8884
set_timeline_upper_limit(content, self.hs.config.filter_timeline_limit)
8985

90-
filter_id = yield self.filtering.add_user_filter(
86+
filter_id = await self.filtering.add_user_filter(
9187
user_localpart=target_user.localpart, user_filter=content
9288
)
9389

0 commit comments

Comments
 (0)