Skip to content

Commit 800fa0a

Browse files
author
Paul McNally
committed
Adds getChildResources method onto PageItems trait to load a resource's child resources - fixes loading availability zone prices and affinity rule members pagination issues
1 parent 922993f commit 800fa0a

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

src/Traits/PageItems.php

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -151,27 +151,24 @@ public function updateEntity($entity)
151151
*/
152152
public function getChildResources($id, $resourceName, $serializer, $filters = [])
153153
{
154-
$page = $this->paginatedRequest($this->collectionPath . '/' . $id . '/' . $resourceName, 1, 15, $filters);
155-
156-
if ($page->totalItems() == 0) {
157-
return [];
158-
}
159-
160-
$page->serializeWith($serializer);
161-
162-
$items = $page->getItems();
154+
$pageNumber = 0;
155+
$items = [];
156+
do {
157+
$pageNumber++;
158+
$page = $this->paginatedRequest(
159+
$this->collectionPath . '/' . $id . '/' . $resourceName,
160+
$pageNumber,
161+
15,
162+
$filters
163+
);
163164

164-
if ($page->totalPages() == 1) {
165-
return $items;
166-
}
167-
while ($page->pageNumber() < $page->totalPages()) {
168-
$page = $this->paginatedRequest($this->collectionPath . '/' . $id . '/' . $resourceName, $page->pageNumber() + 1, 15, $filters);
169165
$page->serializeWith($serializer);
170166
$items = array_merge(
171167
$items,
172168
$page->getItems()
173169
);
174-
}
170+
} while ($pageNumber < $page->totalPages());
171+
175172
return $items;
176173
}
177174
}

0 commit comments

Comments
 (0)