30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
from uuid import UUID
|
|
|
|
from sqlalchemy import select
|
|
from sqlalchemy.orm import sessionmaker
|
|
|
|
from src.models.database_models.model import User, engine
|
|
from src.models.pydantic_models.model import UserOutDB
|
|
|
|
|
|
class UsersCrudActions:
|
|
def __init__(self) -> None:
|
|
self.Session=sessionmaker(bind=engine)
|
|
|
|
def get_user_by_email(self, email:str)->UserOutDB|None:
|
|
with self.Session() as session: # noqa: SIM117
|
|
with session.begin():
|
|
query=select(User).where(User.email==email)
|
|
response=session.scalars(query).one_or_none()
|
|
if response is None:
|
|
return None
|
|
return UserOutDB.model_validate(response)
|
|
|
|
def get_user_by_id(self, id:UUID)->UserOutDB|None:
|
|
with self.Session() as session: # noqa: SIM117
|
|
with session.begin():
|
|
query=select(User).where(User.id==id)
|
|
response=session.scalars(query).one_or_none()
|
|
if response is None:
|
|
return None
|
|
return UserOutDB.model_validate(response) |