mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-14 09:53:47 +01:00
Add missing docstrings related to profile methods. (#17559)
This commit is contained in:
parent
81c19c4cd2
commit
8fea190a1f
3 changed files with 70 additions and 0 deletions
1
changelog.d/17559.doc
Normal file
1
changelog.d/17559.doc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Improve docstrings for profile methods.
|
|
@ -74,6 +74,17 @@ class ProfileHandler:
|
||||||
self._third_party_rules = hs.get_module_api_callbacks().third_party_event_rules
|
self._third_party_rules = hs.get_module_api_callbacks().third_party_event_rules
|
||||||
|
|
||||||
async def get_profile(self, user_id: str, ignore_backoff: bool = True) -> JsonDict:
|
async def get_profile(self, user_id: str, ignore_backoff: bool = True) -> JsonDict:
|
||||||
|
"""
|
||||||
|
Get a user's profile as a JSON dictionary.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
user_id: The user to fetch the profile of.
|
||||||
|
ignore_backoff: True to ignore backoff when fetching over federation.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
A JSON dictionary. For local queries this will include the displayname and avatar_url
|
||||||
|
fields. For remote queries it may contain arbitrary information.
|
||||||
|
"""
|
||||||
target_user = UserID.from_string(user_id)
|
target_user = UserID.from_string(user_id)
|
||||||
|
|
||||||
if self.hs.is_mine(target_user):
|
if self.hs.is_mine(target_user):
|
||||||
|
@ -107,6 +118,15 @@ class ProfileHandler:
|
||||||
raise e.to_synapse_error()
|
raise e.to_synapse_error()
|
||||||
|
|
||||||
async def get_displayname(self, target_user: UserID) -> Optional[str]:
|
async def get_displayname(self, target_user: UserID) -> Optional[str]:
|
||||||
|
"""
|
||||||
|
Fetch a user's display name from their profile.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
target_user: The user to fetch the display name of.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The user's display name or None if unset.
|
||||||
|
"""
|
||||||
if self.hs.is_mine(target_user):
|
if self.hs.is_mine(target_user):
|
||||||
try:
|
try:
|
||||||
displayname = await self.store.get_profile_displayname(target_user)
|
displayname = await self.store.get_profile_displayname(target_user)
|
||||||
|
@ -203,6 +223,15 @@ class ProfileHandler:
|
||||||
await self._update_join_states(requester, target_user)
|
await self._update_join_states(requester, target_user)
|
||||||
|
|
||||||
async def get_avatar_url(self, target_user: UserID) -> Optional[str]:
|
async def get_avatar_url(self, target_user: UserID) -> Optional[str]:
|
||||||
|
"""
|
||||||
|
Fetch a user's avatar URL from their profile.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
target_user: The user to fetch the avatar URL of.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The user's avatar URL or None if unset.
|
||||||
|
"""
|
||||||
if self.hs.is_mine(target_user):
|
if self.hs.is_mine(target_user):
|
||||||
try:
|
try:
|
||||||
avatar_url = await self.store.get_profile_avatar_url(target_user)
|
avatar_url = await self.store.get_profile_avatar_url(target_user)
|
||||||
|
@ -403,6 +432,12 @@ class ProfileHandler:
|
||||||
async def _update_join_states(
|
async def _update_join_states(
|
||||||
self, requester: Requester, target_user: UserID
|
self, requester: Requester, target_user: UserID
|
||||||
) -> None:
|
) -> None:
|
||||||
|
"""
|
||||||
|
Update the membership events of each room the user is joined to with the
|
||||||
|
new profile information.
|
||||||
|
|
||||||
|
Note that this stomps over any custom display name or avatar URL in member events.
|
||||||
|
"""
|
||||||
if not self.hs.is_mine(target_user):
|
if not self.hs.is_mine(target_user):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
|
@ -144,6 +144,16 @@ class ProfileWorkerStore(SQLBaseStore):
|
||||||
return 50
|
return 50
|
||||||
|
|
||||||
async def get_profileinfo(self, user_id: UserID) -> ProfileInfo:
|
async def get_profileinfo(self, user_id: UserID) -> ProfileInfo:
|
||||||
|
"""
|
||||||
|
Fetch the display name and avatar URL of a user.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
user_id: The user ID to fetch the profile for.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The user's display name and avatar URL. Values may be null if unset
|
||||||
|
or if the user doesn't exist.
|
||||||
|
"""
|
||||||
profile = await self.db_pool.simple_select_one(
|
profile = await self.db_pool.simple_select_one(
|
||||||
table="profiles",
|
table="profiles",
|
||||||
keyvalues={"full_user_id": user_id.to_string()},
|
keyvalues={"full_user_id": user_id.to_string()},
|
||||||
|
@ -158,6 +168,15 @@ class ProfileWorkerStore(SQLBaseStore):
|
||||||
return ProfileInfo(avatar_url=profile[1], display_name=profile[0])
|
return ProfileInfo(avatar_url=profile[1], display_name=profile[0])
|
||||||
|
|
||||||
async def get_profile_displayname(self, user_id: UserID) -> Optional[str]:
|
async def get_profile_displayname(self, user_id: UserID) -> Optional[str]:
|
||||||
|
"""
|
||||||
|
Fetch the display name of a user.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
user_id: The user to get the display name for.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
404 if the user does not exist.
|
||||||
|
"""
|
||||||
return await self.db_pool.simple_select_one_onecol(
|
return await self.db_pool.simple_select_one_onecol(
|
||||||
table="profiles",
|
table="profiles",
|
||||||
keyvalues={"full_user_id": user_id.to_string()},
|
keyvalues={"full_user_id": user_id.to_string()},
|
||||||
|
@ -166,6 +185,15 @@ class ProfileWorkerStore(SQLBaseStore):
|
||||||
)
|
)
|
||||||
|
|
||||||
async def get_profile_avatar_url(self, user_id: UserID) -> Optional[str]:
|
async def get_profile_avatar_url(self, user_id: UserID) -> Optional[str]:
|
||||||
|
"""
|
||||||
|
Fetch the avatar URL of a user.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
user_id: The user to get the avatar URL for.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
404 if the user does not exist.
|
||||||
|
"""
|
||||||
return await self.db_pool.simple_select_one_onecol(
|
return await self.db_pool.simple_select_one_onecol(
|
||||||
table="profiles",
|
table="profiles",
|
||||||
keyvalues={"full_user_id": user_id.to_string()},
|
keyvalues={"full_user_id": user_id.to_string()},
|
||||||
|
@ -174,6 +202,12 @@ class ProfileWorkerStore(SQLBaseStore):
|
||||||
)
|
)
|
||||||
|
|
||||||
async def create_profile(self, user_id: UserID) -> None:
|
async def create_profile(self, user_id: UserID) -> None:
|
||||||
|
"""
|
||||||
|
Create a blank profile for a user.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
user_id: The user to create the profile for.
|
||||||
|
"""
|
||||||
user_localpart = user_id.localpart
|
user_localpart = user_id.localpart
|
||||||
await self.db_pool.simple_insert(
|
await self.db_pool.simple_insert(
|
||||||
table="profiles",
|
table="profiles",
|
||||||
|
|
Loading…
Reference in a new issue