from typing import Any from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from app.core.deps import get_current_active_user, get_db from app.models.user import User from app.schemas.user import User as UserSchema, UserUpdate router = APIRouter() @router.get("/me", response_model=UserSchema) def read_user_me( db: Session = Depends(get_db), current_user: User = Depends(get_current_active_user), ) -> Any: return current_user @router.put("/me", response_model=UserSchema) def update_user_me( *, db: Session = Depends(get_db), user_in: UserUpdate, current_user: User = Depends(get_current_active_user), ) -> Any: if user_in.email is not None: current_user.email = user_in.email if user_in.username is not None: current_user.username = user_in.username if user_in.password is not None: from app.core.security import get_password_hash current_user.hashed_password = get_password_hash(user_in.password) db.add(current_user) db.commit() db.refresh(current_user) return current_user