diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2023-10-11 20:08:11 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-11 20:08:11 -0400 |
commit | cc865fffc0e556005a6ab596717a77230ba82ee7 (patch) | |
tree | 9ca606b24dd07b73edbb89bc1803e98034c812f2 /synapse/storage/databases | |
parent | Convert simple_select_many_batch, simple_select_many_txn to tuples. (#16444) (diff) | |
download | synapse-cc865fffc0e556005a6ab596717a77230ba82ee7.tar.xz |
Convert user_get_threepids response to attrs. (#16468)
This improves type annotations by not having a dictionary of Any values.
Diffstat (limited to 'synapse/storage/databases')
-rw-r--r-- | synapse/storage/databases/main/registration.py | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/synapse/storage/databases/main/registration.py b/synapse/storage/databases/main/registration.py index 64a2c31a5d..9e8643ae4d 100644 --- a/synapse/storage/databases/main/registration.py +++ b/synapse/storage/databases/main/registration.py @@ -143,6 +143,14 @@ class LoginTokenLookupResult: """The session ID advertised by the SSO Identity Provider.""" +@attr.s(frozen=True, slots=True, auto_attribs=True) +class ThreepidResult: + medium: str + address: str + validated_at: int + added_at: int + + class RegistrationWorkerStore(CacheInvalidationWorkerStore): def __init__( self, @@ -988,13 +996,14 @@ class RegistrationWorkerStore(CacheInvalidationWorkerStore): {"user_id": user_id, "validated_at": validated_at, "added_at": added_at}, ) - async def user_get_threepids(self, user_id: str) -> List[Dict[str, Any]]: - return await self.db_pool.simple_select_list( + async def user_get_threepids(self, user_id: str) -> List[ThreepidResult]: + results = await self.db_pool.simple_select_list( "user_threepids", - {"user_id": user_id}, - ["medium", "address", "validated_at", "added_at"], - "user_get_threepids", + keyvalues={"user_id": user_id}, + retcols=["medium", "address", "validated_at", "added_at"], + desc="user_get_threepids", ) + return [ThreepidResult(**r) for r in results] async def user_delete_threepid( self, user_id: str, medium: str, address: str |