Skip to content

Commit f00c4e7

Browse files
authored
Add type hints to device and event report admin API (matrix-org#9519)
1 parent ad8589d commit f00c4e7

File tree

3 files changed

+40
-16
lines changed

3 files changed

+40
-16
lines changed

changelog.d/9519.misc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add type hints to device and event report admin API.

synapse/rest/admin/devices.py

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,20 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515
import logging
16+
from typing import TYPE_CHECKING, Tuple
1617

1718
from synapse.api.errors import NotFoundError, SynapseError
1819
from synapse.http.servlet import (
1920
RestServlet,
2021
assert_params_in_dict,
2122
parse_json_object_from_request,
2223
)
24+
from synapse.http.site import SynapseRequest
2325
from synapse.rest.admin._base import admin_patterns, assert_requester_is_admin
24-
from synapse.types import UserID
26+
from synapse.types import JsonDict, UserID
27+
28+
if TYPE_CHECKING:
29+
from synapse.server import HomeServer
2530

2631
logger = logging.getLogger(__name__)
2732

@@ -35,14 +40,16 @@ class DeviceRestServlet(RestServlet):
3540
"/users/(?P<user_id>[^/]*)/devices/(?P<device_id>[^/]*)$", "v2"
3641
)
3742

38-
def __init__(self, hs):
43+
def __init__(self, hs: "HomeServer"):
3944
super().__init__()
4045
self.hs = hs
4146
self.auth = hs.get_auth()
4247
self.device_handler = hs.get_device_handler()
4348
self.store = hs.get_datastore()
4449

45-
async def on_GET(self, request, user_id, device_id):
50+
async def on_GET(
51+
self, request: SynapseRequest, user_id, device_id: str
52+
) -> Tuple[int, JsonDict]:
4653
await assert_requester_is_admin(self.auth, request)
4754

4855
target_user = UserID.from_string(user_id)
@@ -58,7 +65,9 @@ async def on_GET(self, request, user_id, device_id):
5865
)
5966
return 200, device
6067

61-
async def on_DELETE(self, request, user_id, device_id):
68+
async def on_DELETE(
69+
self, request: SynapseRequest, user_id: str, device_id: str
70+
) -> Tuple[int, JsonDict]:
6271
await assert_requester_is_admin(self.auth, request)
6372

6473
target_user = UserID.from_string(user_id)
@@ -72,7 +81,9 @@ async def on_DELETE(self, request, user_id, device_id):
7281
await self.device_handler.delete_device(target_user.to_string(), device_id)
7382
return 200, {}
7483

75-
async def on_PUT(self, request, user_id, device_id):
84+
async def on_PUT(
85+
self, request: SynapseRequest, user_id: str, device_id: str
86+
) -> Tuple[int, JsonDict]:
7687
await assert_requester_is_admin(self.auth, request)
7788

7889
target_user = UserID.from_string(user_id)
@@ -97,7 +108,7 @@ class DevicesRestServlet(RestServlet):
97108

98109
PATTERNS = admin_patterns("/users/(?P<user_id>[^/]*)/devices$", "v2")
99110

100-
def __init__(self, hs):
111+
def __init__(self, hs: "HomeServer"):
101112
"""
102113
Args:
103114
hs (synapse.server.HomeServer): server
@@ -107,7 +118,9 @@ def __init__(self, hs):
107118
self.device_handler = hs.get_device_handler()
108119
self.store = hs.get_datastore()
109120

110-
async def on_GET(self, request, user_id):
121+
async def on_GET(
122+
self, request: SynapseRequest, user_id: str
123+
) -> Tuple[int, JsonDict]:
111124
await assert_requester_is_admin(self.auth, request)
112125

113126
target_user = UserID.from_string(user_id)
@@ -130,13 +143,15 @@ class DeleteDevicesRestServlet(RestServlet):
130143

131144
PATTERNS = admin_patterns("/users/(?P<user_id>[^/]*)/delete_devices$", "v2")
132145

133-
def __init__(self, hs):
146+
def __init__(self, hs: "HomeServer"):
134147
self.hs = hs
135148
self.auth = hs.get_auth()
136149
self.device_handler = hs.get_device_handler()
137150
self.store = hs.get_datastore()
138151

139-
async def on_POST(self, request, user_id):
152+
async def on_POST(
153+
self, request: SynapseRequest, user_id: str
154+
) -> Tuple[int, JsonDict]:
140155
await assert_requester_is_admin(self.auth, request)
141156

142157
target_user = UserID.from_string(user_id)

synapse/rest/admin/event_reports.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,16 @@
1414
# limitations under the License.
1515

1616
import logging
17+
from typing import TYPE_CHECKING, Tuple
1718

1819
from synapse.api.errors import Codes, NotFoundError, SynapseError
1920
from synapse.http.servlet import RestServlet, parse_integer, parse_string
21+
from synapse.http.site import SynapseRequest
2022
from synapse.rest.admin._base import admin_patterns, assert_requester_is_admin
23+
from synapse.types import JsonDict
24+
25+
if TYPE_CHECKING:
26+
from synapse.server import HomeServer
2127

2228
logger = logging.getLogger(__name__)
2329

@@ -45,12 +51,12 @@ class EventReportsRestServlet(RestServlet):
4551

4652
PATTERNS = admin_patterns("/event_reports$")
4753

48-
def __init__(self, hs):
54+
def __init__(self, hs: "HomeServer"):
4955
self.hs = hs
5056
self.auth = hs.get_auth()
5157
self.store = hs.get_datastore()
5258

53-
async def on_GET(self, request):
59+
async def on_GET(self, request: SynapseRequest) -> Tuple[int, JsonDict]:
5460
await assert_requester_is_admin(self.auth, request)
5561

5662
start = parse_integer(request, "from", default=0)
@@ -106,26 +112,28 @@ class EventReportDetailRestServlet(RestServlet):
106112

107113
PATTERNS = admin_patterns("/event_reports/(?P<report_id>[^/]*)$")
108114

109-
def __init__(self, hs):
115+
def __init__(self, hs: "HomeServer"):
110116
self.hs = hs
111117
self.auth = hs.get_auth()
112118
self.store = hs.get_datastore()
113119

114-
async def on_GET(self, request, report_id):
120+
async def on_GET(
121+
self, request: SynapseRequest, report_id: str
122+
) -> Tuple[int, JsonDict]:
115123
await assert_requester_is_admin(self.auth, request)
116124

117125
message = (
118126
"The report_id parameter must be a string representing a positive integer."
119127
)
120128
try:
121-
report_id = int(report_id)
129+
resolved_report_id = int(report_id)
122130
except ValueError:
123131
raise SynapseError(400, message, errcode=Codes.INVALID_PARAM)
124132

125-
if report_id < 0:
133+
if resolved_report_id < 0:
126134
raise SynapseError(400, message, errcode=Codes.INVALID_PARAM)
127135

128-
ret = await self.store.get_event_report(report_id)
136+
ret = await self.store.get_event_report(resolved_report_id)
129137
if not ret:
130138
raise NotFoundError("Event report not found")
131139

0 commit comments

Comments
 (0)