diff --git a/app/users/router.py b/app/users/router.py index 8615ad4..98d90be 100644 --- a/app/users/router.py +++ b/app/users/router.py @@ -212,14 +212,22 @@ async def change_user_data(user_data: SUserChangeData, user=Depends(get_current_ else: hashed_password = user.hashed_password async with uow: - await uow.user.change_data( - user_id=user.id, - email=user_data.email, - username=user_data.username, - avatar_image=str(user_data.avatar_url), - hashed_password=hashed_password - ) - await uow.user.add_user_avatar(user_id=user.id, avatar=str(user_data.avatar_url)) + if not user_data.avatar_url: + await uow.user.change_data( + user_id=user.id, + email=user_data.email, + username=user_data.username, + hashed_password=hashed_password + ) + else: + await uow.user.change_data( + user_id=user.id, + email=user_data.email, + username=user_data.username, + avatar_image=str(user_data.avatar_url), + hashed_password=hashed_password + ) + await uow.user.add_user_avatar(user_id=user.id, avatar=str(user_data.avatar_url)) await uow.commit() send_data_change_email.delay(user_data.username, user_data.email) await RedisService.delete_verification_code(redis=redis_session, user_id=user.id) diff --git a/app/users/schemas.py b/app/users/schemas.py index 85265b7..dc6a8dd 100644 --- a/app/users/schemas.py +++ b/app/users/schemas.py @@ -69,7 +69,7 @@ class SUserChangeData(BaseModel): email: EmailStr username: str = Query(None, min_length=2, max_length=30) new_password: str | None = Query(None, min_length=8) - avatar_url: HttpUrl + avatar_url: HttpUrl | None class STokenLogin(BaseModel):