diff --git a/services/user.py b/services/user.py new file mode 100644 index 0000000..600cb78 --- /dev/null +++ b/services/user.py @@ -0,0 +1,34 @@ +from werkzeug.security import generate_password_hash, check_password_hash +from models.user import User, db + +class UserService: + def __init__(self): + self.db = db + + def create_user(self, username, password): + # Check if the user exists + existing_user = User.query.filter_by(username=username).first() + if existing_user: + raise ValueError("User already exists") + + # Hash the password before storing + hash_password = generate_password_hash(password) + + # Create a new user + new_user = User(username=username, password=hash_password) + self.db.session.add(new_user) + self.db.session.commit() + + return new_user + + def verify_user(self, username, password): + # Fetch the user by username + user = User.query.filter_by(username=username).first() + if not user: + raise ValueError("Invalid username or password") + + # Verify the hashed password + if not check_password_hash(user.password, password): + raise ValueError("Invalid username or password") + + return user \ No newline at end of file