from typing import Optional from fastapi import APIRouter, Depends, Body from sqlalchemy.ext.asyncio import AsyncSession from app.database.session import get_db from app.domain.entities.register import RegisterEntity from app.domain.entities.user import UserEntity from app.infrastructure.dependencies import get_current_user from app.infrastructure.users_service import UsersService router = APIRouter() @router.post( '/', response_model=Optional[UserEntity], summary='User Registration', description='Performs user registration in the system', ) async def register_user( user_data: RegisterEntity, db: AsyncSession = Depends(get_db) ): users_service = UsersService(db) user = await users_service.register_user(user_data) return user @router.put( '/{user_id}/', response_model=Optional[UserEntity], summary='Change user password', description='Change user password', ) async def change_user_password( user_id: int, new_password: str = Body(..., embed=True), # <--- ИЗМЕНЕНИЕ ЗДЕСЬ! Явно указывает, что в теле запроса db: AsyncSession = Depends(get_db), user=Depends(get_current_user), ): users_service = UsersService(db) return await users_service.change_user_password(user_id, new_password, user)