diff --git a/src/presentation/routing/account.py b/src/presentation/routing/account.py index 65fd7d2..ec7ddf1 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,4 @@ 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.from_user(user) diff --git a/src/presentation/routing/account_settings.py b/src/presentation/routing/account_settings.py index 30abd28..0fd16dc 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,7 @@ 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.from_user(user) return SetAvatarPublicResponse(**pub.model_dump(), webp_size_bytes=webp_size) @@ -197,7 +196,7 @@ 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.from_user(user) @account_settings_router.post( diff --git a/src/presentation/serializers/__init__.py b/src/presentation/serializers/__init__.py index a92cc01..e69de29 100644 --- a/src/presentation/serializers/__init__.py +++ b/src/presentation/serializers/__init__.py @@ -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')