Skip to content

Commit 0a6619d

Browse files
committed
Actually works now. :)
1 parent 33718a2 commit 0a6619d

File tree

1 file changed

+24
-3
lines changed

1 file changed

+24
-3
lines changed

src/GroupManage.php

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<?php
2-
//require_once __DIR__ . '/vendor/autoload.php';
32

43
namespace Group;
54

@@ -123,7 +122,29 @@ public function inGroup($email, $group)
123122

124123
public function listGroup($group, $count = 200)
125124
{
126-
$parameters = array('maxResults' => $count);
127-
return $this->service->members->listMembers($group, $parameters)['members'];
125+
if ($count <= 200) {
126+
return $this->service->members->listMembers($group)['members'];
127+
}
128+
129+
$max_per_page = 200;
130+
$members = array();
131+
$fetched = 0;
132+
$parameters = array('maxResults' => $max_per_page);
133+
134+
do {
135+
$m = $this->service->members->listMembers($group, $parameters);
136+
$members = array_merge($members, $m['members']);
137+
$fetched += count($m['members']);
138+
$page_token = $m['nextPageToken'];
139+
140+
if($count - $fetched <= 0) {
141+
break;
142+
}
143+
144+
$parameters['maxResults'] = min(200, $count - $fetched);
145+
$parameters['pageToken'] = $page_token;
146+
} while (strlen($page_token) > 0 || $fetched > $count);
147+
148+
return $members;
128149
}
129150
}

0 commit comments

Comments
 (0)