• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_rest.php
  • Класс: CIMRestService
  • Вызов: CIMRestService::userList
static function userList($arParams, $offset, CRestServer $server)
{
	$arParams = array_change_key_case($arParams, CASE_UPPER);

	$users = Array();
	if (is_string($arParams['ID']))
	{
		$arParams['ID'] = CUtil::JsObjectToPhp($arParams['ID']);
	}
	if (is_array($arParams['ID']))
	{
		foreach ($arParams['ID'] as $userId)
		{
			$userId = intval($userId);
			if ($userId > 0)
			{
				$users[$userId] = $userId;
			}
		}
	}

	if (empty($users))
	{
		throw new BitrixRestRestException("A wrong format for the ID field is passed", "INVALID_FORMAT", CRestServer::STATUS_WRONG_REQUEST);
	}

	$currentUserId = BitrixImUser::getInstance()->getId();
	$isExtranet = BitrixImUser::getInstance()->isExtranet();

	$extranetUsers = Array($currentUserId);
	if ($isExtranet)
	{
		$groups = BitrixImIntegrationSocialnetworkExtranet::getGroup(Array(), $currentUserId);
		if (is_array($groups))
		{
			foreach ($groups as $group)
			{
				foreach ($group['USERS'] as $userId)
				{
					$extranetUsers[$userId] = $userId;
				}
			}
		}
	}

	$result = Array();
	foreach ($users as $userId)
	{
		if ($isExtranet && !isset($extranetUsers[$userId]))
		{
			continue;
		}

		$result[$userId] = BitrixImUser::getInstance($userId)->getArray(Array('JSON' => 'Y', 'HR_PHOTO' => isset($arParams['AVATAR_HR']) && $arParams['AVATAR_HR'] == 'Y'));
	}

	$arParams['RESULT_TYPE'] ??= '';
	if (mb_strtolower(($arParams['RESULT_TYPE'] ?? '')) === 'array')
	{
		$result = array_values($result);
	}

	return $result;
}