from fastapi import APIRouter, Depends from sqlalchemy.ext.asyncio import AsyncSession from app.core.database import get_db from app.core.deps import get_approved_user from app.core.security import hash_password from app.models.user import User from app.schemas.user import UserOut, UserUpdate router = APIRouter() @router.get("/me", response_model=UserOut) async def get_me(user: User = Depends(get_approved_user)): return user @router.patch("/me", response_model=UserOut) async def update_me( data: UserUpdate, user: User = Depends(get_approved_user), db: AsyncSession = Depends(get_db), ): if data.display_name is not None: user.display_name = data.display_name if data.password: user.hashed_password = hash_password(data.password) await db.commit() await db.refresh(user) return user