You are here

public static function Users::getAllUsersBatched in Rocket.Chat 8.2

Retrieve Chat User List. (in batch size)

@todo needs better Error checking / missing detection.

Parameters

\Drupal\rocket_chat_api\RocketChat\ApiClient $api:

array $users:

int $offset:

int $size:

Return value

float|int

float|int

1 call to Users::getAllUsersBatched()
Users::refreshCache in modules/rocket_chat_api/src/RocketChat/Collection/Users.php

File

modules/rocket_chat_api/src/RocketChat/Collection/Users.php, line 92

Class

Users

Namespace

Drupal\rocket_chat_api\RocketChat\Collection

Code

public static function getAllUsersBatched(ApiClient &$api, array &$users, $offset = 0, $size = 500) {
  $ret = $api
    ->getFromRocketChat("users.list", [
    "query" => [
      "offset" => $offset,
      "count" => $size,
    ],
  ]);
  foreach ($ret['body']['users'] as $index => $user) {
    $users[] = $user;
  }
  $total = $ret['body']['total'];
  $count = $ret['body']['count'];
  $retOffset = $ret['body']['offset'];
  $subTotal = $count * (1 + $retOffset);
  $usersLeft = $total - $subTotal;
  if ($usersLeft > 0) {
    self::getAllUsersBatched($api, $users, ++$offset, $size);
  }
  return $subTotal;
}