- Модуль: rest
- Путь к файлу: ~/bitrix/modules/rest/lib/api/event.php
- Класс: BitrixRestApiEvent
- Вызов: Event::eventOfflineClear
static function eventOfflineClear($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);
$processId = isset($query['process_id']) ? trim($query['process_id']) : null;
$authData = $server->getAuthData();
$connectorId = isset($authData['auth_connector']) ? $authData['auth_connector'] : '';
if($processId === null)
{
throw new ArgumentNullException('PROCESS_ID');
}
$clientInfo = AppTable::getByClientId($server->getClientId());
if(isset($query['message_id']))
{
$listIds = false;
if(!is_array($query['message_id']))
{
throw new ArgumentException('Value must be array of MESSAGE_ID values', 'message_id');
}
foreach($query['message_id'] as $messageId)
{
$messageId = trim($messageId);
if(mb_strlen($messageId) !== 32)
{
throw new ArgumentException('Value must be array of MESSAGE_ID values', 'messsage_id');
}
$listIds[] = $messageId;
}
EventOfflineTable::clearEventsByMessageId($processId, $clientInfo['ID'], $connectorId, $listIds);
}
else
{
$listIds = false;
if(isset($query['id']))
{
if(!is_array($query['id']))
{
throw new ArgumentException('Value must be array of integers', 'id');
}
foreach($query['id'] as $id)
{
$id = intval($id);
if($id <= 0)
{
throw new ArgumentException('Value must be array of integers', 'id');
}
$listIds[] = $id;
}
}
EventOfflineTable::clearEvents($processId, $clientInfo['ID'], $connectorId, $listIds);
}
return true;
}