mirror of
https://mau.dev/maunium/synapse.git
synced 2024-11-16 06:51:46 +01:00
Add typing to membership Replication class methods (#8809)
This PR grew out of #6739, and adds typing to some method arguments You'll notice that there are a lot of `# type: ignores` in here. This is due to the base methods not matching the overloads here. This is necessary to stop mypy complaining, but a better solution is #8828.
This commit is contained in:
parent
1cd356765e
commit
5cbe8d93fe
2 changed files with 45 additions and 22 deletions
1
changelog.d/8809.misc
Normal file
1
changelog.d/8809.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Remove unnecessary function arguments and add typing to several membership replication classes.
|
|
@ -12,9 +12,10 @@
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from typing import TYPE_CHECKING, Optional
|
from typing import TYPE_CHECKING, List, Optional, Tuple
|
||||||
|
|
||||||
|
from twisted.web.http import Request
|
||||||
|
|
||||||
from synapse.http.servlet import parse_json_object_from_request
|
from synapse.http.servlet import parse_json_object_from_request
|
||||||
from synapse.replication.http._base import ReplicationEndpoint
|
from synapse.replication.http._base import ReplicationEndpoint
|
||||||
|
@ -52,16 +53,23 @@ class ReplicationRemoteJoinRestServlet(ReplicationEndpoint):
|
||||||
self.clock = hs.get_clock()
|
self.clock = hs.get_clock()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def _serialize_payload(
|
async def _serialize_payload( # type: ignore
|
||||||
requester, room_id, user_id, remote_room_hosts, content
|
requester: Requester,
|
||||||
):
|
room_id: str,
|
||||||
|
user_id: str,
|
||||||
|
remote_room_hosts: List[str],
|
||||||
|
content: JsonDict,
|
||||||
|
) -> JsonDict:
|
||||||
"""
|
"""
|
||||||
Args:
|
Args:
|
||||||
requester(Requester)
|
requester: The user making the request according to the access token
|
||||||
room_id (str)
|
room_id: The ID of the room.
|
||||||
user_id (str)
|
user_id: The ID of the user.
|
||||||
remote_room_hosts (list[str]): Servers to try and join via
|
remote_room_hosts: Servers to try and join via
|
||||||
content(dict): The event content to use for the join event
|
content: The event content to use for the join event
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
A dict representing the payload of the request.
|
||||||
"""
|
"""
|
||||||
return {
|
return {
|
||||||
"requester": requester.serialize(),
|
"requester": requester.serialize(),
|
||||||
|
@ -69,7 +77,9 @@ class ReplicationRemoteJoinRestServlet(ReplicationEndpoint):
|
||||||
"content": content,
|
"content": content,
|
||||||
}
|
}
|
||||||
|
|
||||||
async def _handle_request(self, request, room_id, user_id):
|
async def _handle_request( # type: ignore
|
||||||
|
self, request: Request, room_id: str, user_id: str
|
||||||
|
) -> Tuple[int, JsonDict]:
|
||||||
content = parse_json_object_from_request(request)
|
content = parse_json_object_from_request(request)
|
||||||
|
|
||||||
remote_room_hosts = content["remote_room_hosts"]
|
remote_room_hosts = content["remote_room_hosts"]
|
||||||
|
@ -118,14 +128,17 @@ class ReplicationRemoteRejectInviteRestServlet(ReplicationEndpoint):
|
||||||
txn_id: Optional[str],
|
txn_id: Optional[str],
|
||||||
requester: Requester,
|
requester: Requester,
|
||||||
content: JsonDict,
|
content: JsonDict,
|
||||||
):
|
) -> JsonDict:
|
||||||
"""
|
"""
|
||||||
Args:
|
Args:
|
||||||
invite_event_id: ID of the invite to be rejected
|
invite_event_id: The ID of the invite to be rejected.
|
||||||
txn_id: optional transaction ID supplied by the client
|
txn_id: Optional transaction ID supplied by the client
|
||||||
requester: user making the rejection request, according to the access token
|
requester: User making the rejection request, according to the access token
|
||||||
content: additional content to include in the rejection event.
|
content: Additional content to include in the rejection event.
|
||||||
Normally an empty dict.
|
Normally an empty dict.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
A dict representing the payload of the request.
|
||||||
"""
|
"""
|
||||||
return {
|
return {
|
||||||
"txn_id": txn_id,
|
"txn_id": txn_id,
|
||||||
|
@ -133,7 +146,9 @@ class ReplicationRemoteRejectInviteRestServlet(ReplicationEndpoint):
|
||||||
"content": content,
|
"content": content,
|
||||||
}
|
}
|
||||||
|
|
||||||
async def _handle_request(self, request, invite_event_id):
|
async def _handle_request( # type: ignore
|
||||||
|
self, request: Request, invite_event_id: str
|
||||||
|
) -> Tuple[int, JsonDict]:
|
||||||
content = parse_json_object_from_request(request)
|
content = parse_json_object_from_request(request)
|
||||||
|
|
||||||
txn_id = content["txn_id"]
|
txn_id = content["txn_id"]
|
||||||
|
@ -174,18 +189,25 @@ class ReplicationUserJoinedLeftRoomRestServlet(ReplicationEndpoint):
|
||||||
self.distributor = hs.get_distributor()
|
self.distributor = hs.get_distributor()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def _serialize_payload(room_id, user_id, change):
|
async def _serialize_payload( # type: ignore
|
||||||
|
room_id: str, user_id: str, change: str
|
||||||
|
) -> JsonDict:
|
||||||
"""
|
"""
|
||||||
Args:
|
Args:
|
||||||
room_id (str)
|
room_id: The ID of the room.
|
||||||
user_id (str)
|
user_id: The ID of the user.
|
||||||
change (str): "left"
|
change: "left"
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
A dict representing the payload of the request.
|
||||||
"""
|
"""
|
||||||
assert change == "left"
|
assert change == "left"
|
||||||
|
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
def _handle_request(self, request, room_id, user_id, change):
|
def _handle_request( # type: ignore
|
||||||
|
self, request: Request, room_id: str, user_id: str, change: str
|
||||||
|
) -> Tuple[int, JsonDict]:
|
||||||
logger.info("user membership change: %s in %s", user_id, room_id)
|
logger.info("user membership change: %s in %s", user_id, room_id)
|
||||||
|
|
||||||
user = UserID.from_string(user_id)
|
user = UserID.from_string(user_id)
|
||||||
|
|
Loading…
Reference in a new issue