Add type hints to the room member handler. (#9631)

This commit is contained in:
Patrick Cloke 2021-03-17 07:14:39 -04:00 committed by GitHub
parent 27d2820c33
commit b449af0379
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 17 additions and 6 deletions

1
changelog.d/9631.misc Normal file
View File

@ -0,0 +1 @@
Add additional type hints to the Homeserver object.

View File

@ -437,10 +437,10 @@ class RegistrationHandler(BaseHandler):
if RoomAlias.is_valid(r): if RoomAlias.is_valid(r):
( (
room_id, room,
remote_room_hosts, remote_room_hosts,
) = await room_member_handler.lookup_room_alias(room_alias) ) = await room_member_handler.lookup_room_alias(room_alias)
room_id = room_id.to_string() room_id = room.to_string()
else: else:
raise SynapseError( raise SynapseError(
400, "%s was not legal room ID or room alias" % (r,) 400, "%s was not legal room ID or room alias" % (r,)

View File

@ -155,6 +155,10 @@ class RoomMemberHandler(metaclass=abc.ABCMeta):
""" """
raise NotImplementedError() raise NotImplementedError()
@abc.abstractmethod
async def forget(self, user: UserID, room_id: str) -> None:
raise NotImplementedError()
def ratelimit_invite(self, room_id: Optional[str], invitee_user_id: str): def ratelimit_invite(self, room_id: Optional[str], invitee_user_id: str):
"""Ratelimit invites by room and by target user. """Ratelimit invites by room and by target user.

View File

@ -14,7 +14,7 @@
# limitations under the License. # limitations under the License.
import logging import logging
from typing import List, Optional, Tuple from typing import TYPE_CHECKING, List, Optional, Tuple
from synapse.api.errors import SynapseError from synapse.api.errors import SynapseError
from synapse.handlers.room_member import RoomMemberHandler from synapse.handlers.room_member import RoomMemberHandler
@ -25,11 +25,14 @@ from synapse.replication.http.membership import (
) )
from synapse.types import Requester, UserID from synapse.types import Requester, UserID
if TYPE_CHECKING:
from synapse.app.homeserver import HomeServer
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class RoomMemberWorkerHandler(RoomMemberHandler): class RoomMemberWorkerHandler(RoomMemberHandler):
def __init__(self, hs): def __init__(self, hs: "HomeServer"):
super().__init__(hs) super().__init__(hs)
self._remote_join_client = ReplRemoteJoin.make_client(hs) self._remote_join_client = ReplRemoteJoin.make_client(hs)
@ -83,3 +86,6 @@ class RoomMemberWorkerHandler(RoomMemberHandler):
await self._notify_change_client( await self._notify_change_client(
user_id=target.to_string(), room_id=room_id, change="left" user_id=target.to_string(), room_id=room_id, change="left"
) )
async def forget(self, target: UserID, room_id: str) -> None:
raise RuntimeError("Cannot forget rooms on workers.")

View File

@ -96,7 +96,7 @@ from synapse.handlers.room import (
RoomShutdownHandler, RoomShutdownHandler,
) )
from synapse.handlers.room_list import RoomListHandler from synapse.handlers.room_list import RoomListHandler
from synapse.handlers.room_member import RoomMemberMasterHandler from synapse.handlers.room_member import RoomMemberHandler, RoomMemberMasterHandler
from synapse.handlers.room_member_worker import RoomMemberWorkerHandler from synapse.handlers.room_member_worker import RoomMemberWorkerHandler
from synapse.handlers.search import SearchHandler from synapse.handlers.search import SearchHandler
from synapse.handlers.set_password import SetPasswordHandler from synapse.handlers.set_password import SetPasswordHandler
@ -630,7 +630,7 @@ class HomeServer(metaclass=abc.ABCMeta):
return ThirdPartyEventRules(self) return ThirdPartyEventRules(self)
@cache_in_self @cache_in_self
def get_room_member_handler(self): def get_room_member_handler(self) -> RoomMemberHandler:
if self.config.worker_app: if self.config.worker_app:
return RoomMemberWorkerHandler(self) return RoomMemberWorkerHandler(self)
return RoomMemberMasterHandler(self) return RoomMemberMasterHandler(self)