from flask_bcrypt import Bcrypt from models import db, User bcrypt = Bcrypt() class UserService: @staticmethod def create_user(data): new_user = User( name=data['username'], email=data['email'], location=data['location'], password_hash=bcrypt.generate_password_hash(data['password']).decode('utf-8') ) db.session.add(new_user) db.session.commit() return new_user.to_dict() @staticmethod def get_all_users(): users = User.query.all() return [user.to_dict() for user in users] @staticmethod def get_user_by_email(email): return User.query.filter_by(email=email).first() @staticmethod def get_user_by_id(user_id): return User.query.get(user_id) @staticmethod def verify_user(data): user = UserService.get_user_by_email(data['email']) if user and bcrypt.check_password_hash(user.password_hash, data['password']): return user return None