(refactor): Enhance error handling and route structure
Added url_prefix to auth blueprint Implemented comprehensive exception handling with 500 errors Improved code clarity and structure
This commit is contained in:
		
							parent
							
								
									afac3b6281
								
							
						
					
					
						commit
						de5bff5935
					
				
					 1 changed files with 27 additions and 15 deletions
				
			
		|  | @ -1,36 +1,48 @@ | ||||||
| # routes/auth.py |  | ||||||
| from flask import Blueprint, request, jsonify, session | from flask import Blueprint, request, jsonify, session | ||||||
| from services.UserService.user import UserService | from services.UserService.user import UserService | ||||||
| 
 | 
 | ||||||
| auth_bp = Blueprint('auth', __name__) | auth_bp = Blueprint("auth", __name__, url_prefix="/auth") | ||||||
| user_service = UserService() | user_service = UserService() | ||||||
| 
 | 
 | ||||||
| @auth_bp.route('/signup', methods=['POST']) | 
 | ||||||
|  | @auth_bp.route("/signup", methods=["POST"]) | ||||||
| def signup(): | def signup(): | ||||||
|     data = request.get_json() |     data = request.get_json() | ||||||
|     try: |     try: | ||||||
|         new_user = user_service.create_user(data['username'], data['password']) |         new_user = user_service.create_user(data["username"], data["password"]) | ||||||
|         return jsonify({"message": "User created successfully", "username": new_user.username}), 201 |         return ( | ||||||
|  |             jsonify({"message": "User created successfully", "username": new_user.username}), | ||||||
|  |             201, | ||||||
|  |         ) | ||||||
|     except ValueError as e: |     except ValueError as e: | ||||||
|         return jsonify({"message": str(e)}), 400 |         return jsonify({"message": str(e)}), 400 | ||||||
|  |     except Exception as e: | ||||||
|  |         # Log the error | ||||||
|  |         print(f"Signup error: {e}") | ||||||
|  |         return jsonify({"message": "Internal server error"}), 500 | ||||||
| 
 | 
 | ||||||
| @auth_bp.route('/login', methods=['POST']) | 
 | ||||||
|  | @auth_bp.route("/login", methods=["POST"]) | ||||||
| def login(): | def login(): | ||||||
|     data = request.get_json() |     data = request.get_json() | ||||||
|     username = data.get('username') |     username = data.get("username") | ||||||
|     password = data.get('password') |     password = data.get("password") | ||||||
| 
 | 
 | ||||||
|     print(f"Login attempt: username={username}, password={password}") |     print(f"Login attempt: username={username}, password={password}") | ||||||
| 
 | 
 | ||||||
|     try: |     try: | ||||||
|         user = user_service.verify_user(data['username'], data['password']) |         user = user_service.verify_user(username, password) | ||||||
|         session['user_id'] = user.id |         session["user_id"] = user.id | ||||||
|         return jsonify({"message": "Login successful", "user_id": user.id}), 200 |         return jsonify({"message": "Login successful", "user_id": user.id}), 200 | ||||||
|     except ValueError as e: |     except ValueError as e: | ||||||
|         print(f"Login failed: {str(e)}") |         print(f"Login failed: {str(e)}") | ||||||
|         return jsonify({"error": str(e)}), 401 |         return jsonify({"error": str(e)}), 401 | ||||||
|  |     except Exception as e: | ||||||
|  |         print(f"Login error: {e}") | ||||||
|  |         return jsonify({"error": "Internal server error"}), 500 | ||||||
| 
 | 
 | ||||||
| @auth_bp.route('/logout', methods=['POST']) | 
 | ||||||
|  | @auth_bp.route("/logout", methods=["POST"]) | ||||||
| def logout(): | def logout(): | ||||||
|     session.clear() |     session.clear() | ||||||
|     return jsonify({"message": "Logout successful"}), 200 |     return jsonify({"message": "Logout successful"}), 200 | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Blake Ridgway
						Blake Ridgway