From b1f2d29fe5554f404d484b7b50db57636ff90d33 Mon Sep 17 00:00:00 2001 From: Blake Ridgway Date: Wed, 18 Dec 2024 10:43:20 -0600 Subject: [PATCH] (feat): User service init --- services/user.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 services/user.py 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