update scalable_sync.py to improve draft validation by renaming variables and enhancing error handling for activity drafts
This commit is contained in:
+13
-10
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user