This commit is contained in:
Bernhard Radermacher
2025-09-01 11:36:22 +00:00
parent eb1d8d793c
commit 292e296f01
26 changed files with 461 additions and 410 deletions

View File

@@ -35,11 +35,12 @@ def set_item_status(session, current_user, item, status: str):
def update_item(session, current_user, item, data):
for k, v in data.model_dump(exclude_unset=True).items():
if (k == 'code' and
session.scalar(select(item.__class__).where(item.__class__.code == v)) != item):
raise HTTPException(status_code=422,
detail=[dict(msg=f"{item.__class__.__name__} {k!r} already exists",
type="Integrity Error")])
if k == 'code':
r = session.scalar(select(item.__class__).where(item.__class__.code == v))
if r and r != item:
raise HTTPException(status_code=422,
detail=[dict(msg=f"{item.__class__.__name__} {v!r} already exists",
type="Integrity Error")])
setattr(item, k, v)
item._user__id = current_user.id
try:
@@ -52,11 +53,11 @@ def update_item(session, current_user, item, data):
return item
def create_item(session, cls, current_user, data):
def create_item(session, cls, name, current_user, data):
item = cls(**data.model_dump())
if session.scalar(select(cls).where(cls.code == item.code)):
raise HTTPException(status_code=422,
detail=[dict(msg=f"{cls.__class__.__name__} {item.code} already exists",
detail=[dict(msg=f"{name} {item.code!r} already exists",
type="Integrity Error")])
item._user__id = current_user.id
session.add(item)