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

	$skipChatParam = $arParams['SKIP_CHAT'] ?? null;
	$skipDialogParam = $arParams['SKIP_DIALOG'] ?? null;
	$unreadOnly = $arParams['UNREAD_ONLY'] ?? null;

	$config = Array('JSON' => 'Y');
	if ($arParams['SKIP_OPENLINES'] === 'Y')
	{
		$config['SKIP_OPENLINES'] = 'Y';
	}
	if ($skipChatParam === 'Y')
	{
		$config['SKIP_CHAT'] = 'Y';
	}
	if ($skipDialogParam === 'Y')
	{
		$config['SKIP_DIALOG'] = 'Y';
	}
	if ($unreadOnly === 'Y')
	{
		$config['UNREAD_ONLY'] = 'Y';
	}
	if (isset($arParams['GET_ORIGINAL_TEXT']) && $arParams['GET_ORIGINAL_TEXT'] === 'Y')
	{
		$config['GET_ORIGINAL_TEXT'] = 'Y';
	}
	else
	{
		$config['GET_ORIGINAL_TEXT'] = 'N';
	}

	if (isset($arParams['LAST_MESSAGE_DATE']) && $arParams['LAST_MESSAGE_DATE'])
	{
		try
		{
			$config['LAST_MESSAGE_DATE'] = new BitrixMainTypeDateTime($arParams['LAST_MESSAGE_DATE'], DateTimeInterface::RFC3339);
		}
		catch (Exception $e){}
	}

	$config['OFFSET'] = self::getOffset($offset, $arParams);
	$config['LIMIT'] = self::getLimit($arParams);

	$result = BitrixImRecent::getList(null, $config);

	if ($result['hasMore'])
	{
		$result['next'] = $config['OFFSET']+(count($result['items']));
	}

	$result['total'] = -1;

	return $result;

}