fix: controll to update user email
parent
31c54be970
commit
07e897cd47
|
@ -14,9 +14,15 @@ class UserModel:
|
|||
user = {"email": email, "password": hashed}
|
||||
return self.collection.insert_one(user)
|
||||
|
||||
def find_by_email(self, email):
|
||||
return self.collection.find_one({"email": email})
|
||||
|
||||
def find_by_email(self, email, except_user_id=None):
|
||||
|
||||
if except_user_id:
|
||||
object_id = ObjectId(except_user_id)
|
||||
return self.collection.find_one({'email': email, "_id": {"$ne": object_id}})
|
||||
|
||||
return self.collection.find_one({"email": email})
|
||||
|
||||
|
||||
def get_user_by_id(self, user_id):
|
||||
object_id = ObjectId(user_id)
|
||||
return self.collection.find_one({"_id": object_id},{"email": 1, "roles": 1,})
|
||||
|
|
|
@ -52,12 +52,14 @@ class User(Resource):
|
|||
data = request.get_json()
|
||||
|
||||
validated = UpdateUserRequest(**data)
|
||||
|
||||
if exist := self.user_model.find_by_email(validated.email):
|
||||
return {"success": False, 'message': f'Email {exist["email"]} belong to another user'}, 400
|
||||
|
||||
if not self.user_model.get_user_by_id(user_id):
|
||||
|
||||
if user := self.user_model.get_user_by_id(user_id):
|
||||
user_already_exist = self.user_model.find_by_email(email=validated.email, except_user_id=user['_id'])
|
||||
if user_already_exist:
|
||||
return {"success": False, 'message': f'Email {validated.email} belong to another user'}, 400
|
||||
else:
|
||||
return {"success": False, 'message': 'User not found'}, 404
|
||||
|
||||
|
||||
update_data = validated.model_dump(exclude_none=True)
|
||||
|
||||
|
|
Loading…
Reference in New Issue