- Модуль: 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']
));
}