add crud for forms, templates, shipment, users and auth with keycloak

This commit is contained in:
2026-02-09 23:38:22 +01:00
parent 145f3f632e
commit be7ca58513
45 changed files with 949 additions and 226 deletions

View File

@@ -0,0 +1,42 @@
from sqlmodel import Session, select
import src.models as models
def get_all(session: Session) -> list[models.FormPublic]:
statement = select(models.Form)
return session.exec(statement).all()
def get_one(session: Session, form_id: int) -> models.FormPublic:
return session.get(models.Form, form_id)
def create_one(session: Session, form: models.FormCreate) -> models.FormPublic:
form_create = form.model_dump(exclude_unset=True)
new_form = models.Form(**form_create)
session.add(new_form)
session.commit()
session.refresh(new_form)
return new_form
def update_one(session: Session, id: int, form: models.FormUpdate) -> models.FormPublic:
statement = select(models.Form).where(models.Form.id == id)
result = session.exec(statement)
new_form = result.first()
if not new_form:
return None
form_updates = form.model_dump(exclude_unset=True)
for key, value in form_updates.items():
setattr(new_form, key, value)
session.add(new_form)
session.commit()
session.refresh(new_form)
return new_form
def delete_one(session: Session, id: int) -> models.FormPublic:
statement = select(models.Form).where(models.Form.id == id)
result = session.exec(statement)
form = result.first()
if not form:
return None
result = models.FormPublic.model_validate(form)
session.delete(form)
session.commit()
return result