From 0d324f99b29dfe1453d891f799512413e3776484 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Tue, 12 May 2026 14:52:46 +0000 Subject: [PATCH] =?UTF-8?q?Fetch=20all=20pages=20in=20get=5Fplans=20pagina?= =?UTF-8?q?tion=20loop=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/magic_plan/magic_plan_client.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/backend/magic_plan/magic_plan_client.py b/backend/magic_plan/magic_plan_client.py index de2fe4f6..bf50a6f8 100644 --- a/backend/magic_plan/magic_plan_client.py +++ b/backend/magic_plan/magic_plan_client.py @@ -11,9 +11,17 @@ class MagicPlanClient: self._session.headers.update({"customer": customer_id, "key": api_key}) def get_plans(self) -> list[PlanSummary]: - r = self._session.get(f"{_BASE_URL}/workgroups/plans", params={"page": 1}) - r.raise_for_status() - return PlansListResponse.model_validate(r.json()["data"]).plans + all_plans: list[PlanSummary] = [] + page = 1 + while True: + r = self._session.get(f"{_BASE_URL}/workgroups/plans", params={"page": page}) + r.raise_for_status() + response = PlansListResponse.model_validate(r.json()["data"]) + all_plans.extend(response.plans) + if not response.paging.next_page: + break + page += 1 + return all_plans def get_plan(self, plan_id: str) -> MagicPlanPlan: return MagicPlanPlan.model_validate(self._fetch_plan(plan_id).json()["data"])