42 lines
1.3 KiB
Python

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)