Update code in endpoints/users/update.post.py
This commit is contained in:
parent
7511f15e33
commit
6c9fc540f0
46
endpoints/users/update.post.py
Normal file
46
endpoints/users/update.post.py
Normal file
@ -0,0 +1,46 @@
|
||||
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
|
||||
]
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user