• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_rest.php
  • Класс: CIMRestService
  • Вызов: CIMRestService::chatFileGet
static function chatFileGet($arParams, $n, CRestServer $server)
{
	$arParams = array_change_key_case($arParams, CASE_UPPER);
	$filter = [
		'SEARCH_FILE_NAME' => $arParams['SEARCH_FILE_NAME'] ?? null,
		'LAST_ID' => $arParams['LAST_ID'] ?? null,
		'SUBTYPE' => $arParams['SUBTYPE'] ?? null,
		'USER_ID' => $arParams['USER_ID'] ?? null,
		'CHAT_ID' => $arParams['CHAT_ID'] ?? null,
		'DATE_FROM' => $arParams['DATE_FROM'] ? new DateTime($arParams['DATE_FROM'], DateTimeInterface::RFC3339) : null,
		'DATE_TO' => $arParams['DATE_TO'] ? new DateTime($arParams['DATE_TO'], DateTimeInterface::RFC3339) : null,
	];
	$limit = self::getLimit($arParams);
	$order = [
		'ID' => $arParams['ORDER']['ID'] ?? 'DESC',
	];
	if (!isset($filter['CHAT_ID']))
	{
		throw new BitrixRestRestException('CHAT_ID can`t be empty', 'CHAT_ID_EMPTY', CRestServer::STATUS_WRONG_REQUEST);
	}

	$chatId = $filter['CHAT_ID'];
	$chat = BitrixImV2Chat::getInstance($chatId);

	if (!$chat->hasAccess())
	{
		throw new BitrixRestRestException('You do not have access to this chat', BitrixImV2RestRestError::ACCESS_ERROR, CRestServer::STATUS_FORBIDDEN);
	}

	if (isset($filter['SUBTYPE']))
	{
		$filter['SUBTYPE'] = BitrixImV2LinkFileFileItem::getSubtypeFromJsonFormat($filter['SUBTYPE']);
	}

	$startId = $chat->getStartId();

	if ($startId > 0)
	{
		$filter['START_ID'] = $startId;
	}

	$files = BitrixImV2LinkFileFileCollection::find($filter, $order, $limit, new BitrixImV2ServiceContext());

	return (new BitrixImV2RestRestAdapter($files))->toRestFormat();
}