Skip to content

Commit 7cb886b

Browse files
committed
patient crud and creaate menu
1 parent d61a001 commit 7cb886b

File tree

1 file changed

+65
-1
lines changed

1 file changed

+65
-1
lines changed

backend/app/crud.py

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from sqlmodel import Session, select
55

66
from app.core.security import get_password_hash, verify_password
7-
from app.models import Item, ItemCreate, User, UserCreate, UserUpdate
7+
from app.models import Item, ItemCreate, User, UserCreate, UserUpdate, Patient, PatientCreate, MenuCreate, MenuUpdate, Menu
88

99

1010
def create_user(*, session: Session, user_create: UserCreate) -> User:
@@ -52,3 +52,67 @@ def create_item(*, session: Session, item_in: ItemCreate, owner_id: uuid.UUID) -
5252
session.commit()
5353
session.refresh(db_item)
5454
return db_item
55+
56+
57+
58+
59+
def create_patient(*, session: Session,patient_in: PatientCreate, owner_id: uuid.UUID) -> Patient:
60+
db_obj = Patient.model_validate(patient_in, update={"owner_id": owner_id})
61+
62+
session.add(db_obj)
63+
session.commit()
64+
session.refresh(db_obj)
65+
return db_obj
66+
67+
def update_patient_password(*, session: Session,db_patient: Patient, user_in: UserUpdate) -> Any:
68+
patient_data = user_in.model_dump(exclude_unset=True)
69+
extra_data = {}
70+
if "password" in patient_data:
71+
password = patient_data["password"]
72+
hashed_password = get_password_hash(password)
73+
extra_data["hashed_password"] = hashed_password
74+
db_patient.sqlmodel_update(patient_data, update=extra_data)
75+
session.add(db_patient)
76+
session.commit()
77+
session.refresh(db_patient)
78+
return db_patient
79+
80+
81+
82+
83+
def update_patient_info(*, session: Session,db_patient: Patient, patient_in: UserUpdate) -> Any:
84+
patient_data = patient_in.model_dump(exclude_unset=True)
85+
extra_data = {}
86+
if "password" in patient_data:
87+
password = patient_data["password"]
88+
hashed_password = get_password_hash(password)
89+
extra_data["hashed_password"] = hashed_password
90+
db_patient.sqlmodel_update(patient_data, update=extra_data)
91+
session.add(db_patient)
92+
session.commit()
93+
session.refresh(db_patient)
94+
return db_patient
95+
96+
97+
98+
def get_patient_by_email(*, session: Session, email: str) -> User | None:
99+
statement = select(Patient).where(Patient.email == email)
100+
session_patient = session.exec(statement).first()
101+
return session_patient
102+
103+
def create_menu(*, session: Session,menu_create: MenuCreate) -> Menu:
104+
db_obj = Menu.model_validate(
105+
menu_create
106+
)
107+
session.add(db_obj)
108+
session.commit()
109+
session.refresh(db_obj)
110+
return db_obj
111+
112+
113+
114+
115+
116+
117+
118+

0 commit comments

Comments
 (0)