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