diff --git a/src/presentation/routing/account.py b/src/presentation/routing/account.py index 65fd7d2..e65d967 100644 --- a/src/presentation/routing/account.py +++ b/src/presentation/routing/account.py @@ -10,7 +10,6 @@ from src.presentation.dependencies.logger import get_logger from src.presentation.decorators import csrf_protect from src.presentation.schemas.api_errors import ApiErrorPayload, ApiValidationErrorsPayload from src.presentation.schemas.me_public import MeUserPublicResponse -from src.presentation.serializers import me_user_public account_router = APIRouter() @@ -37,6 +36,10 @@ account_router = APIRouter() 'description': 'Ошибка проверки CSRF (нет пары cookie/заголовка, несовпадение или просрочен токен).', 'model': ApiErrorPayload, }, + status.HTTP_404_NOT_FOUND: { + 'description': 'Учётная запись не найдена.', + 'model': ApiErrorPayload, + }, status.HTTP_422_UNPROCESSABLE_ENTITY: { 'description': 'Ошибка валидации входных данных (например, заголовков).', 'model': ApiValidationErrorsPayload, @@ -52,4 +55,22 @@ async def me( ) -> MeUserPublicResponse: user = await command(user_id=auth.user_id) logger.info(f'Get user: {user.id}') - return me_user_public(user) + return MeUserPublicResponse( + id=user.id, + email=user.email, + first_name=user.first_name, + middle_name=user.middle_name, + last_name=user.last_name, + birth_date=user.birth_date, + encrypted_mnemonic=user.encrypted_mnemonic, + phone=user.phone, + passport_data=user.passport_data, + inn=user.inn, + erc20=user.erc20, + avatar_link=user.avatar_link, + kyc_verified=user.kyc_verified, + is_deleted=user.is_deleted, + created_at=user.created_at, + updated_at=user.updated_at, + kyc_verified_at=user.kyc_verified_at + ) diff --git a/src/presentation/routing/account_settings.py b/src/presentation/routing/account_settings.py index 30abd28..88427b0 100644 --- a/src/presentation/routing/account_settings.py +++ b/src/presentation/routing/account_settings.py @@ -30,7 +30,6 @@ from src.presentation.schemas import ( ) from src.presentation.schemas.api_errors import ApiErrorPayload, ApiValidationErrorsPayload from src.presentation.schemas.me_public import MeUserPublicResponse, SetAvatarPublicResponse -from src.presentation.serializers import me_user_public account_settings_router = APIRouter(prefix='/settings') @@ -175,7 +174,25 @@ async def set_avatar( command: SetAvatarCommand = Depends(get_set_avatar_command), ) -> SetAvatarPublicResponse: user, webp_size = await command(user_id=auth.user_id, image_bytes=body.decoded_bytes) - pub = me_user_public(user) + pub = MeUserPublicResponse( + id=user.id, + email=user.email, + first_name=user.first_name, + middle_name=user.middle_name, + last_name=user.last_name, + birth_date=user.birth_date, + encrypted_mnemonic=user.encrypted_mnemonic, + phone=user.phone, + passport_data=user.passport_data, + inn=user.inn, + erc20=user.erc20, + avatar_link=user.avatar_link, + kyc_verified=user.kyc_verified, + is_deleted=user.is_deleted, + created_at=user.created_at, + updated_at=user.updated_at, + kyc_verified_at=user.kyc_verified_at + ) return SetAvatarPublicResponse(**pub.model_dump(), webp_size_bytes=webp_size) @@ -197,7 +214,25 @@ async def delete_avatar( command: DeleteAvatarCommand = Depends(get_delete_avatar_command), ) -> MeUserPublicResponse: user = await command(user_id=auth.user_id) - return me_user_public(user) + return MeUserPublicResponse( + id=user.id, + email=user.email, + first_name=user.first_name, + middle_name=user.middle_name, + last_name=user.last_name, + birth_date=user.birth_date, + encrypted_mnemonic=user.encrypted_mnemonic, + phone=user.phone, + passport_data=user.passport_data, + inn=user.inn, + erc20=user.erc20, + avatar_link=user.avatar_link, + kyc_verified=user.kyc_verified, + is_deleted=user.is_deleted, + created_at=user.created_at, + updated_at=user.updated_at, + kyc_verified_at=user.kyc_verified_at + ) @account_settings_router.post( diff --git a/src/presentation/serializers/__init__.py b/src/presentation/serializers/__init__.py deleted file mode 100644 index a92cc01..0000000 --- a/src/presentation/serializers/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from src.presentation.serializers.me_user import me_user_payload, me_user_public diff --git a/src/presentation/serializers/me_user.py b/src/presentation/serializers/me_user.py deleted file mode 100644 index 169ce69..0000000 --- a/src/presentation/serializers/me_user.py +++ /dev/null @@ -1,13 +0,0 @@ -from __future__ import annotations - -from src.application.domain.entities import UserEntity - -from src.presentation.schemas.me_public import MeUserPublicResponse - - -def me_user_public(user: UserEntity) -> MeUserPublicResponse: - return MeUserPublicResponse.from_user(user) - - -def me_user_payload(user: UserEntity) -> dict: - return me_user_public(user).model_dump(mode='json')