visus-plus/api/app/controllers/users_router.py

42 lines
1.2 KiB
Python

from typing import Optional
from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
from app.database.session import get_db
from app.domain.entities.change_password import ChangePasswordEntity
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.get(
'/my-data/',
response_model=Optional[UserEntity],
summary='Returns current authenticated user data',
description='Returns current authenticated user data',
)
async def get_authenticated_user_data(
db: AsyncSession = Depends(get_db),
user=Depends(get_current_user),
):
users_service = UsersService(db)
return await users_service.get_by_id(user.id)
@router.get(
'/change-password/',
response_model=Optional[UserEntity],
summary='Change password for user',
description='Changes password for user',
)
async def get_authenticated_user_data(
data: ChangePasswordEntity,
db: AsyncSession = Depends(get_db),
user=Depends(get_current_user),
):
users_service = UsersService(db)
return await users_service.get_by_id(data.user_id, data.new_password, user.id)