Coverage for src/kwai/api/v1/auth/presenters.py: 71%
14 statements
« prev ^ index » next coverage.py v7.6.10, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.6.10, created at 2024-01-01 00:00 +0000
1"""Module that defines presenters for the auth api."""
3from kwai.api.v1.auth.schemas.revoked_user import RevokedUserDocument
4from kwai.api.v1.auth.schemas.user_account import UserAccountDocument
5from kwai.core.domain.presenter import AsyncPresenter, IterableResult, Presenter
6from kwai.core.json_api import JsonApiPresenter, Meta
7from kwai.modules.identity.users.user_account import UserAccountEntity
10class JsonApiUserAccountsPresenter(
11 JsonApiPresenter[UserAccountDocument],
12 AsyncPresenter[IterableResult[UserAccountEntity]],
13):
14 """A presenter that transform a user account entity into a JSON:API document."""
16 async def present(self, result: IterableResult[UserAccountEntity]) -> None:
17 self._document = UserAccountDocument(
18 meta=Meta(count=result.count, offset=result.offset, limit=result.limit),
19 data=[],
20 )
21 async for user_account in result.iterator:
22 user_account_document = UserAccountDocument.create(user_account)
23 self._document.merge(user_account_document)
26class JsonApiRevokedUserPresenter(
27 JsonApiPresenter[RevokedUserDocument],
28 Presenter[UserAccountEntity],
29):
30 """A presenter that transform a user account entity into a JSON:API document.
32 The document will be a [RevokedUserDocument].
33 """
35 def present(self, use_case_result: UserAccountEntity) -> None:
36 self._document = RevokedUserDocument.create(use_case_result)