feat: auth backend implementation

This commit is contained in:
2025-06-09 07:04:33 -04:00
parent eb84ff2060
commit df5b247cdd
8 changed files with 419 additions and 3 deletions
+32
View File
@@ -1,5 +1,6 @@
from sqlalchemy.orm import Session
from app import models, schemas
from app.utils import hash_password, verify_password
def get_item(db: Session, item_id: int):
@@ -24,3 +25,34 @@ def delete_item(db: Session, item_id: int):
db.delete(item)
db.commit()
return item
# User / Auth
def authenticate_user(db: Session, username: str, password: str):
user = get_user_by_username(db, username)
if not user:
return None
if not verify_password(password, str(user.hashed_password)):
return None
return user
def get_user_by_username(db: Session, username: str):
return db.query(models.User).filter(models.User.username == username).first()
def get_user_by_email(db: Session, email: str):
return db.query(models.User).filter(models.User.email == email).first()
def create_user(db: Session, user: schemas.UserCreate):
hashed_pw = hash_password(user.password)
db_user = models.User(
username=user.username, email=user.email, hashed_password=hashed_pw
)
db.add(db_user)
db.commit()
db.refresh(db_user)
return db_user