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)