- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_rest.php
- Класс: CVoxImplantRestService
- Вызов: CVoxImplantRestService::statisticGet
static function statisticGet($arParams, $start, $server)
{
$permissions = SecurityPermissions::createWithCurrentUser();
if (!$permissions->canPerform(SecurityPermissions::ENTITY_CALL_DETAIL, SecurityPermissions::ACTION_VIEW))
{
throw new BitrixRestAccessException();
}
$arParams = array_change_key_case($arParams, CASE_UPPER);
$sort = $arParams['SORT'];
$order = $arParams['ORDER'];
$arFilter = self::checkStatisticFilter($arParams['FILTER']);
$allowedUserIds = SecurityHelper::getAllowedUserIds(
$permissions->getUserId(),
$permissions->getPermission(SecurityPermissions::ENTITY_CALL_DETAIL, SecurityPermissions::ACTION_VIEW)
);
if (is_array($allowedUserIds))
{
$arFilter['PORTAL_USER_ID'] = $allowedUserIds;
}
$totalCount = $start >= 0 ? BitrixVoximplantStatisticTable::getCount($arFilter) : 0;
$arNavParams = self::getNavData($start, true);
$arSort = [];
if ($sort && $order)
{
$arSort[$sort] = $order;
}
$result = [];
$dbRes = BitrixVoximplantStatisticTable::getList([
'order' => $arSort,
'filter' => $arFilter,
'limit' => $arNavParams['limit'],
'offset' => $arNavParams['offset'],
]);
while ($arData = $dbRes->fetch())
{
$arData['RECORD_FILE_ID'] = (int)$arData['CALL_WEBDAV_ID'] ?: null;
unset($arData['ACCOUNT_ID']);
unset($arData['APPLICATION_ID']);
unset($arData['APPLICATION_NAME']);
unset($arData['CALL_LOG']);
unset($arData['CALL_RECORD_ID']);
unset($arData['CALL_WEBDAV_ID']);
unset($arData['CALL_STATUS']);
unset($arData['CALL_DIRECTION']);
$arData['CALL_TYPE'] = $arData['INCOMING'];
unset($arData['INCOMING']);
$arData['CALL_START_DATE'] = CRestUtil::ConvertDateTime($arData['CALL_START_DATE']);
$result[] = $arData;
}
return self::setNavData(
$result,
[
"count" => $totalCount,
"offset" => $arNavParams['offset']
]
);
}