mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
feat: verify email availability on create/update
This commit is contained in:
parent
9384cbe85d
commit
880b195159
1 changed files with 13 additions and 2 deletions
|
|
@ -10,12 +10,18 @@ from src.services.users.schemas.users import PasswordChangeForm, PublicUser, Use
|
||||||
async def create_user(request: Request, current_user: PublicUser | None, user_object: UserWithPassword, org_id: str):
|
async def create_user(request: Request, current_user: PublicUser | None, user_object: UserWithPassword, org_id: str):
|
||||||
users = request.app.db["users"]
|
users = request.app.db["users"]
|
||||||
|
|
||||||
isUserAvailable = await users.find_one({"username": user_object.username})
|
isUsernameAvailable = await users.find_one({"username": user_object.username})
|
||||||
|
isEmailAvailable = await users.find_one({"email": user_object.email})
|
||||||
|
|
||||||
if isUserAvailable:
|
|
||||||
|
if isUsernameAvailable:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_409_CONFLICT, detail="Username already exists")
|
status_code=status.HTTP_409_CONFLICT, detail="Username already exists")
|
||||||
|
|
||||||
|
if isEmailAvailable:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_409_CONFLICT, detail="Email already exists")
|
||||||
|
|
||||||
# Generate user_id with uuid4
|
# Generate user_id with uuid4
|
||||||
user_id = str(f"user_{uuid4()}")
|
user_id = str(f"user_{uuid4()}")
|
||||||
|
|
||||||
|
|
@ -69,6 +75,7 @@ async def update_user(request: Request, user_id: str, user_object: User,current
|
||||||
|
|
||||||
isUserExists = await users.find_one({"user_id": user_id})
|
isUserExists = await users.find_one({"user_id": user_id})
|
||||||
isUsernameAvailable = await users.find_one({"username": user_object.username})
|
isUsernameAvailable = await users.find_one({"username": user_object.username})
|
||||||
|
isEmailAvailable = await users.find_one({"email": user_object.email})
|
||||||
|
|
||||||
if not isUserExists:
|
if not isUserExists:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|
@ -83,6 +90,10 @@ async def update_user(request: Request, user_id: str, user_object: User,current
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_409_CONFLICT, detail="Username already used")
|
status_code=status.HTTP_409_CONFLICT, detail="Username already used")
|
||||||
|
|
||||||
|
if isEmailAvailable:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_409_CONFLICT, detail="Email already used")
|
||||||
|
|
||||||
updated_user = {"$set": user_object.dict()}
|
updated_user = {"$set": user_object.dict()}
|
||||||
users.update_one({"user_id": user_id}, updated_user)
|
users.update_one({"user_id": user_id}, updated_user)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue