diff options
Diffstat (limited to 'app/routes/users/user.py')
| -rw-r--r-- | app/routes/users/user.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/app/routes/users/user.py b/app/routes/users/user.py new file mode 100644 index 0000000..1eb096d --- /dev/null +++ b/app/routes/users/user.py @@ -0,0 +1,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) |
