(feaet): Refactor auth routes to use UserService
This commit is contained in:
		
							parent
							
								
									f624792a2f
								
							
						
					
					
						commit
						356058e1f9
					
				
					 2 changed files with 13 additions and 19 deletions
				
			
		|  | @ -1,3 +1,4 @@ | ||||||
|  | # routes/auth.py | ||||||
| from flask import Blueprint, request, jsonify | from flask import Blueprint, request, jsonify | ||||||
| from services.user import UserService | from services.user import UserService | ||||||
| 
 | 
 | ||||||
|  | @ -7,17 +8,8 @@ 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() | ||||||
|     username = data.get('username') |  | ||||||
|     password = data.get('password') |  | ||||||
| 
 |  | ||||||
|     if not username or not password: |  | ||||||
|         return jsonify({"error": "Username and password are required"}), 400 |  | ||||||
|      |  | ||||||
|     if len(username) < 3 or len(password) < 8: |  | ||||||
|         return jsonify({"error": "Username must be at least 3 characters and password must be at least 8 characters."}), 400 |  | ||||||
| 
 |  | ||||||
|     try: |     try: | ||||||
|         new_user = user_service.create_user(username, 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 | ||||||
|  | @ -25,14 +17,8 @@ def signup(): | ||||||
| @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') |  | ||||||
|     password = data.get('password') |  | ||||||
| 
 |  | ||||||
|     if not username or not password: |  | ||||||
|         return jsonify({"error": "Username and password are required"}), 400 |  | ||||||
| 
 |  | ||||||
|     try: |     try: | ||||||
|         user = user_service.verify_user(username, password) |         user = user_service.verify_user(data['username'], data['password']) | ||||||
|         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: | ||||||
|         return jsonify({"error": str(e)}), 401 |         return jsonify({"error": str(e)}), 401 | ||||||
|  |  | ||||||
|  | @ -1,13 +1,21 @@ | ||||||
| from werkzeug.security import generate_password_hash, check_password_hash |  | ||||||
| from models.user import User, db | from models.user import User, db | ||||||
|  | from werkzeug.security import generate_password_hash, check_password_hash | ||||||
| 
 | 
 | ||||||
| class UserService: | class UserService: | ||||||
|     def create_user(self, username, password): |     def create_user(self, username, password): | ||||||
|  |         if not username or not password: | ||||||
|  |             return jsonify({"error": "Username and password are required"}), 400 | ||||||
|  |          | ||||||
|  |         if len(username) < 3 or len(password) < 8: | ||||||
|  |             return jsonify({"error": "Username must be at least 3 characters and password must be at least 8 characters."}), 400 | ||||||
|  | 
 | ||||||
|  |          | ||||||
|         existing_user = User.query.filter_by(username=username).first() |         existing_user = User.query.filter_by(username=username).first() | ||||||
|         if existing_user: |         if existing_user: | ||||||
|             raise ValueError("User already exists") |             raise ValueError("User already exists") | ||||||
|          |          | ||||||
|         new_user = User(username=username, password=password) |         hashed_password = generate_password_hash(password) | ||||||
|  |         new_user = User(username=username, password=hashed_password) | ||||||
|         db.session.add(new_user) |         db.session.add(new_user) | ||||||
|         db.session.commit() |         db.session.commit() | ||||||
|         return new_user |         return new_user | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Blake Ridgway
						Blake Ridgway