summaryrefslogtreecommitdiff
path: root/app/routes/users/user.py
blob: 1eb096d2c531d4603291544f12ba56e97c9f023e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.ext.asyncio import AsyncSession

from app.models.user import User
from app.schemas.user import UserRead
from app.utils.db import get_async_session

router = APIRouter(prefix="/users", tags=["users"])


@router.get("/{username}", response_model=UserRead)
async def get_user(
    username: str,
    session: AsyncSession = Depends(get_async_session),
):
    user = await User.get_user_by_username(username, session=session)

    if not user:
        raise HTTPException(status_code=404, detail="User not found")

    return UserRead.model_validate(user)