from fastapi import APIRouter, Depends, HTTPException from core.auth import get_current_user_dummy from core.database import fake_users_db router = APIRouter() @router.post("/users/update") async def update_profile( current_user: dict = Depends(get_current_user_dummy), username: str = None, email: str = None, bio: str = None ): """Update user profile information""" if current_user["username"] not in fake_users_db: raise HTTPException(status_code=404, detail="User not found") user_data = fake_users_db[current_user["username"]] if username and username != current_user["username"]: if username in fake_users_db: raise HTTPException(status_code=400, detail="Username already taken") fake_users_db[username] = user_data del fake_users_db[current_user["username"]] current_user["username"] = username if email: user_data["email"] = email if bio: user_data["bio"] = bio return { "message": "Profile updated successfully", "user": { "username": current_user["username"], "email": user_data["email"], "bio": user_data.get("bio", ""), }, "metadata": { "updated_fields": [ field for field in ["username", "email", "bio"] if locals()[field] is not None ] } }