Skip to content

Commit 4cc601f

Browse files
committed
added affinity rule members
1 parent f9a345f commit 4cc601f

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

src/eCloud/AffinityRuleClient.php

+32
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace UKFast\SDK\eCloud;
44

55
use UKFast\SDK\eCloud\Entities\AffinityRule;
6+
use UKFast\SDK\eCloud\Entities\AffinityRuleMember;
67
use UKFast\SDK\Entities\ClientEntityInterface;
78
use UKFast\SDK\Traits\PageItems;
89

@@ -23,4 +24,35 @@ public function loadEntity($data)
2324
$this->apiToFriendly($data, $this->getEntityMap())
2425
);
2526
}
27+
28+
public function getMembers($id, $filters = [])
29+
{
30+
$page = $this->paginatedRequest($this->collectionPath . '/' . $id . '/members', 1, 15, $filters);
31+
32+
if ($page->totalItems() == 0) {
33+
return [];
34+
}
35+
36+
$loadEntity = function ($data) {
37+
return new AffinityRuleMember($this->apiToFriendly($data, AffinityRuleMember::$entityMap));
38+
};
39+
40+
$page->serializeWith($loadEntity);
41+
42+
$items = $page->getItems();
43+
if ($page->totalPages() == 1) {
44+
return $items;
45+
}
46+
47+
while ($page->pageNumber() < $page->totalPages()) {
48+
$page = $this->getPage($page->pageNumber() + 1, 15, $filters);
49+
50+
$page->serializeWith($loadEntity);
51+
$items = array_merge(
52+
$items,
53+
$page->getItems()
54+
);
55+
}
56+
return $items;
57+
}
2658
}
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace UKFast\SDK\eCloud\Entities;
4+
5+
use UKFast\SDK\Entity;
6+
7+
/**
8+
* @property int $id
9+
* @property string $instanceId
10+
* @property string $affinityRuleId
11+
* @property string $createdAt
12+
*/
13+
class AffinityRuleMember extends Entity
14+
{
15+
protected $dates = ['createdAt', 'updatedAt'];
16+
17+
public static $entityMap = [
18+
'id' => 'id',
19+
'instance_id' => 'instanceId',
20+
'affinity_rule_id' => 'affinityRuleId',
21+
'created_at' => 'createdAt',
22+
];
23+
}

0 commit comments

Comments
 (0)