From 9580bea63023cebcdf2b29cba3dc99d5cda00b89 Mon Sep 17 00:00:00 2001 From: Dejan Ribarovski Date: Mon, 13 Oct 2025 13:52:36 +0200 Subject: [PATCH] Update 7project/backend/app/api/transactions.py Better error message Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- 7project/backend/app/api/transactions.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/7project/backend/app/api/transactions.py b/7project/backend/app/api/transactions.py index cd8fe04..7308ecf 100644 --- a/7project/backend/app/api/transactions.py +++ b/7project/backend/app/api/transactions.py @@ -116,13 +116,16 @@ async def update_transaction( # Preload categories to avoid async lazy-load during assignment await session.refresh(tx, attribute_names=["categories"]) if payload.category_ids: + # Check for duplicate category IDs in the payload + if len(payload.category_ids) != len(set(payload.category_ids)): + raise HTTPException(status_code=400, detail="Duplicate category IDs in payload") res = await session.execute( select(Category).where( Category.user_id == user.id, Category.id.in_(payload.category_ids) ) ) categories = list(res.scalars()) - if len(categories) != len(set(payload.category_ids)): + if len(categories) != len(payload.category_ids): raise HTTPException(status_code=400, detail="One or more categories not found") tx.categories = categories else: