- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_rest.php
- Класс: CVoxImplantRestService
- Вызов: CVoxImplantRestService::sipGet
static function sipGet($arParams, $nav, $server)
{
$permissions = SecurityPermissions::createWithCurrentUser();
if (!$permissions->canPerform(SecurityPermissions::ENTITY_LINE, SecurityPermissions::ACTION_MODIFY))
{
throw new BitrixRestAccessException();
}
$arParams = array_change_key_case($arParams, CASE_UPPER);
$arParams['FILTER'] ??= null;
$arParams['SORT'] ??= null;
$arParams['ORDER'] ??= null;
$sort = $arParams['SORT'];
$order = $arParams['ORDER'];
if (isset($arParams['FILTER']) && is_array($arParams['FILTER']))
{
$arFilter = array_change_key_case($arParams['FILTER'], CASE_UPPER);
}
else
{
$arFilter = [];
}
$arFilter['APP_ID'] = $server->getAppId();
$arReturn = [];
$dbResCnt = BitrixVoximplantSipTable::getList([
'filter' => $arFilter,
'select' => ["CNT" => new BitrixMainEntityExpressionField('CNT', 'COUNT(1)')],
]);
$arResCnt = $dbResCnt->fetch();
if ($arResCnt && $arResCnt["CNT"] > 0)
{
$arNavParams = self::getNavData($nav, true);
$arSort = [];
if ($sort && $order)
{
$arSort[$sort] = $order;
}
$dbRes = BitrixVoximplantSipTable::getList([
'order' => $arSort,
'select' => ['*', 'TITLE'],
'filter' => $arFilter,
'limit' => $arNavParams['limit'],
'offset' => $arNavParams['offset'],
]);
$result = [];
while ($arData = $dbRes->fetch())
{
unset($arData['ID']);
unset($arData['APP_ID']);
if ($arData['TYPE'] == CVoxImplantSip::TYPE_CLOUD)
{
unset($arData['INCOMING_SERVER']);
unset($arData['INCOMING_LOGIN']);
unset($arData['INCOMING_PASSWORD']);
}
else
{
unset($arData['REG_ID']);
}
$result[] = $arData;
}
return self::setNavData(
$result,
[
"count" => $arResCnt['CNT'],
"offset" => $arNavParams['offset']
]
);
}
return $arReturn;
}