Coverage for bc/kwai-bc-identity/src/kwai_bc_identity/users/user_account_db_query.py: 100%
22 statements
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""Module that implements the UserAccountQuery interface for a database."""
3from typing import Self
5from kwai_core.db.database_query import DatabaseQuery
6from kwai_core.domain.value_objects.email_address import EmailAddress
7from kwai_core.domain.value_objects.unique_id import UniqueId
9from kwai_bc_identity.users.user_account import UserAccountIdentifier
10from kwai_bc_identity.users.user_account_query import UserAccountQuery
11from kwai_bc_identity.users.user_tables import UserAccountRow
14class UserAccountDbQuery(UserAccountQuery, DatabaseQuery):
15 """A user account query for a database."""
17 def init(self):
18 self._query.from_(UserAccountRow.__table_name__)
20 @property
21 def columns(self):
22 return UserAccountRow.get_aliases()
24 def filter_by_id(self, id_: UserAccountIdentifier) -> Self:
25 self._query.and_where(UserAccountRow.field("id").eq(id_.value))
26 return self
28 def filter_by_email(self, email: EmailAddress) -> Self:
29 self._query.and_where(UserAccountRow.field("email").eq(str(email)))
30 return self
32 def filter_by_uuid(self, uuid: UniqueId) -> Self:
33 self._query.and_where(UserAccountRow.field("uuid").eq(str(uuid)))
34 return self