mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
feat: add profile settings page
This commit is contained in:
parent
fac6b57ab3
commit
1157b77835
21 changed files with 456 additions and 134 deletions
|
|
@ -59,7 +59,7 @@ async def api_delete_user(request: Request, user_id: str):
|
|||
|
||||
|
||||
@router.put("/user_id/{user_id}")
|
||||
async def api_update_user(request: Request, user_object: UserWithPassword, user_id: str):
|
||||
async def api_update_user(request: Request, user_object: User, user_id: str):
|
||||
"""
|
||||
Update user by ID
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
from typing import Optional
|
||||
from uuid import uuid4
|
||||
from pydantic import BaseModel
|
||||
from src.services.security import *
|
||||
|
|
@ -17,7 +18,6 @@ class User(BaseModel):
|
|||
user_type: str | None = None
|
||||
bio: str | None = None
|
||||
|
||||
|
||||
class UserWithPassword(User):
|
||||
password: str
|
||||
|
||||
|
|
@ -128,7 +128,7 @@ async def get_userid_by_username(request: Request, username: str):
|
|||
return user["user_id"]
|
||||
|
||||
|
||||
async def update_user(request: Request, user_id: str, user_object: UserWithPassword):
|
||||
async def update_user(request: Request, user_id: str, user_object: User):
|
||||
users = request.app.db["users"]
|
||||
|
||||
isUserExists = await users.find_one({"user_id": user_id})
|
||||
|
|
@ -138,11 +138,18 @@ async def update_user(request: Request, user_id: str, user_object: UserWithPassw
|
|||
raise HTTPException(
|
||||
status_code=status.HTTP_409_CONFLICT, detail="User does not exist")
|
||||
|
||||
if isUsernameAvailable:
|
||||
raise HTTPException(
|
||||
|
||||
# TODO : fix this
|
||||
|
||||
# okay if username is not changed
|
||||
if isUserExists["username"] == user_object.username:
|
||||
user_object.username = user_object.username.lower()
|
||||
|
||||
else:
|
||||
if isUsernameAvailable:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_409_CONFLICT, detail="Username already used")
|
||||
|
||||
user_object.password = await security_hash_password(user_object.password)
|
||||
|
||||
updated_user = {"$set": user_object.dict()}
|
||||
users.update_one({"user_id": user_id}, updated_user)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue