This commit is contained in:
Tom Trappmann
2025-12-23 17:17:33 +01:00
commit d04730edd8
28 changed files with 387 additions and 0 deletions

30
app/crud/user.py Normal file
View File

@@ -0,0 +1,30 @@
from sqlalchemy.orm import Session
from app.core.security import get_password_hash, verify_password
from app.models.user import User
from app.schemas.user import UserCreate
def get_by_email(db: Session, email: str) -> User | None:
return db.query(User).filter(User.email == email).first()
def create(db: Session, user_in: UserCreate) -> User:
user = User(
email=user_in.email,
hashed_password=get_password_hash(user_in.password),
is_active=True,
)
db.add(user)
db.commit()
db.refresh(user)
return user
def authenticate(db: Session, email: str, password: str) -> User | None:
user = get_by_email(db, email)
if not user:
return None
if not verify_password(password, user.hashed_password):
return None
return user