update scalable_sync.py to improve draft validation by renaming variables and enhancing error handling for activity drafts

This commit is contained in:
Lukas Pierchalla
2026-09-20 13:23:38 +02:00
parent 5526278668
commit 0aa548cb4f
+13 -10
View File
@@ -359,26 +359,29 @@ class WealthfolioMCP:
)
draft_data = draft_result.structured_content or {}
drafts = draft_data.get("drafts", [])
draft_rows = draft_data.get("drafts", [])
if len(drafts) != len(activities):
if len(draft_rows) != len(activities):
raise RuntimeError(
"Wealthfolio returned an incomplete draft batch: "
f"expected {len(activities)}, got {len(drafts)}"
f"expected {len(activities)}, got {len(draft_rows)}; "
+ json.dumps(draft_data, default=str)
)
invalid = [
draft for draft in drafts
if not draft.get("accountId")
or not draft.get("activityType")
or not draft.get("activityDate")
invalid_rows = [
row for row in draft_rows
if row.get("errors")
or not row.get("validation", {}).get("isValid", False)
or not row.get("draft", {}).get("accountId")
]
if invalid:
if invalid_rows:
raise RuntimeError(
"Wealthfolio returned invalid activity drafts: "
+ json.dumps(invalid, default=str)
+ json.dumps(invalid_rows, default=str)
)
drafts = [row["draft"] for row in draft_rows]
commit_result = asyncio.run(
self._connect_and_call(
"commit_activity_drafts",