(refactor): Implement robust logging and database error handling
Introduced logging for user operations Added database rollback on user creation failure Enhanced exception handling and error reporting
This commit is contained in:
		
							parent
							
								
									de5bff5935
								
							
						
					
					
						commit
						dc36b21dcc
					
				
					 1 changed files with 21 additions and 9 deletions
				
			
		|  | @ -1,30 +1,42 @@ | |||
| from models.User.user import User, db | ||||
| import logging | ||||
| 
 | ||||
| logger = logging.getLogger(__name__) | ||||
| 
 | ||||
| 
 | ||||
| class UserService: | ||||
|     def create_user(self, username, password): | ||||
|         if not username or not password: | ||||
|             raise ValueError("Username and password are required") | ||||
|          | ||||
| 
 | ||||
|         if len(username) < 3 or len(password) < 8: | ||||
|             raise ValueError("Username must be at least 3 characters and password must be at least 8 characters.") | ||||
|          | ||||
|             raise ValueError( | ||||
|                 "Username must be at least 3 characters and password must be at least 8 characters." | ||||
|             ) | ||||
| 
 | ||||
|         existing_user = User.query.filter_by(username=username).first() | ||||
|         if existing_user: | ||||
|             raise ValueError("User already exists") | ||||
|          | ||||
| 
 | ||||
|         new_user = User(username=username, password=password) | ||||
|         db.session.add(new_user) | ||||
|         db.session.commit() | ||||
|         try: | ||||
|             db.session.commit() | ||||
|         except Exception as e: | ||||
|             db.session.rollback() | ||||
|             logger.error(f"Error creating user: {e}") | ||||
|             raise ValueError("Could not create user") from e | ||||
|         return new_user | ||||
| 
 | ||||
|     def verify_user(self, username, password): | ||||
|         user = User.query.filter_by(username=username).first() | ||||
|         if not user: | ||||
|             print(f"User not found: {username}") | ||||
|             logger.warning(f"User not found: {username}") | ||||
|             raise ValueError("Invalid username or password") | ||||
|          | ||||
| 
 | ||||
|         if not user.check_password(password): | ||||
|             logger.warning(f"Invalid password for user: {username}") | ||||
|             raise ValueError("Invalid username or password") | ||||
|          | ||||
|         print(f"User verified: {username}") | ||||
| 
 | ||||
|         logger.info(f"User verified: {username}") | ||||
|         return user | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Blake Ridgway
						Blake Ridgway