mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Fetch all pages in get_plans pagination loop 🟩
This commit is contained in:
parent
6dfca082f8
commit
0d324f99b2
1 changed files with 11 additions and 3 deletions
|
|
@ -11,9 +11,17 @@ class MagicPlanClient:
|
||||||
self._session.headers.update({"customer": customer_id, "key": api_key})
|
self._session.headers.update({"customer": customer_id, "key": api_key})
|
||||||
|
|
||||||
def get_plans(self) -> list[PlanSummary]:
|
def get_plans(self) -> list[PlanSummary]:
|
||||||
r = self._session.get(f"{_BASE_URL}/workgroups/plans", params={"page": 1})
|
all_plans: list[PlanSummary] = []
|
||||||
r.raise_for_status()
|
page = 1
|
||||||
return PlansListResponse.model_validate(r.json()["data"]).plans
|
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:
|
def get_plan(self, plan_id: str) -> MagicPlanPlan:
|
||||||
return MagicPlanPlan.model_validate(self._fetch_plan(plan_id).json()["data"])
|
return MagicPlanPlan.model_validate(self._fetch_plan(plan_id).json()["data"])
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue