🚚 Refactor and simplify backend file structure (#609)
This commit is contained in:

committed by
GitHub

parent
a065f9c9e8
commit
73b2884057
38
src/backend/app/crud/__init__.py
Normal file
38
src/backend/app/crud/__init__.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from .crud_item import item
|
||||
from .crud_user import user
|
||||
|
||||
# For a new basic set of CRUD operations you could just do
|
||||
|
||||
# from .base import CRUDBase
|
||||
# from app.models.item import Item
|
||||
# from app.schemas.item import ItemCreate, ItemUpdate
|
||||
|
||||
# item = CRUDBase[Item, ItemCreate, ItemUpdate](Item)
|
||||
from sqlmodel import Session, select
|
||||
from app.core.security import get_password_hash, verify_password
|
||||
from app.models import UserCreate, User
|
||||
|
||||
|
||||
def create_user(*, session: Session, user_create: UserCreate) -> User:
|
||||
db_obj = User.from_orm(
|
||||
user_create, update={"hashed_password": get_password_hash(user_create.password)}
|
||||
)
|
||||
session.add(db_obj)
|
||||
session.commit()
|
||||
session.refresh(db_obj)
|
||||
return db_obj
|
||||
|
||||
|
||||
def get_user_by_email(*, session: Session, email: str) -> User | None:
|
||||
statement = select(User).where(User.email == email)
|
||||
session_user = session.exec(statement).first()
|
||||
return session_user
|
||||
|
||||
|
||||
def authenticate(*, session: Session, email: str, password: str) -> User | None:
|
||||
user = get_user_by_email(session=session, email=email)
|
||||
if not user:
|
||||
return None
|
||||
if not verify_password(password, user.hashed_password):
|
||||
return None
|
||||
return user
|
Reference in New Issue
Block a user