• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/lib/api/event.php
  • Класс: BitrixRestApiEvent
  • Вызов: Event::eventOfflineList
static function eventOfflineList($query, $n, CRestServer $server)
{
	if($server->getAuthType() !== Auth::AUTH_TYPE)
	{
		throw new AuthTypeException();
	}

	if(!CRestUtil::isAdmin())
	{
		throw new AccessException();
	}

	$query = array_change_key_case($query, CASE_LOWER);

	$filter = isset($query['filter']) ? $query['filter'] : array();
	$order = isset($query['order']) ? $query['order'] : array('ID' => 'ASC');

	$authData = $server->getAuthData();
	$connectorId = isset($authData['auth_connector']) ? $authData['auth_connector'] : '';

	$queryFilter = static::sanitizeFilter($filter, array('ID', 'TIMESTAMP_X', 'EVENT_NAME', 'MESSAGE_ID', 'PROCESS_ID', 'ERROR'));

	$order = static::sanitizeOrder($order, array('ID', 'TIMESTAMP_X', 'EVENT_NAME', 'MESSAGE_ID', 'PROCESS_ID', 'ERROR'));

	$clientInfo = AppTable::getByClientId($server->getClientId());

	$queryFilter['=APP_ID'] = $clientInfo['ID'];

	$getEventQuery = EventOfflineTable::query();

	if ($connectorId === '')
	{
		$getEventQuery->where('CONNECTOR_ID', '');
	}
	else
	{
		$queryFilter['=CONNECTOR_ID'] = $connectorId;
	}

	$navParams = static::getNavData($n, true);

	$getEventQuery
		->setSelect(['ID', 'TIMESTAMP_X', 'EVENT_NAME', 'EVENT_DATA', 'EVENT_ADDITIONAL', 'MESSAGE_ID', 'PROCESS_ID', 'ERROR'])
		->setFilter($queryFilter)
		->setOrder($order)
		->setLimit($navParams['limit'])
		->setOffset($navParams['offset']);

	$result = array();
	$dbRes = $getEventQuery->exec();

	while($event = $dbRes->fetch())
	{
		/** @var DateTime $ts */
		$ts = $event['TIMESTAMP_X'];

		$event['TIMESTAMP_X'] = CRestUtil::convertDateTime($ts->toString());

		if (isset($event['EVENT_ADDITIONAL'][Auth::PARAM_LOCAL_USER]))
		{
			$event['EVENT_ADDITIONAL'] = [
				'user_id' => $event['EVENT_ADDITIONAL'][Auth::PARAM_LOCAL_USER],
			];
		}

		$result[] = $event;
	}

	return static::setNavData($result, array(
		"count" => $getEventQuery->queryCountTotal(),
		"offset" => $navParams['offset']
	));
}