- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_rest.php
- Класс: CVoxImplantRestService
- Вызов: CVoxImplantRestService::sipUpdate
static function sipUpdate($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['CONFIG_ID'] ??= null;
$arParams['TYPE'] ??= null;
$arParams['TITLE'] ??= null;
$arParams['SERVER'] ??= null;
$arParams['LOGIN'] ??= null;
$arParams['PASSWORD'] ??= null;
$dbResCnt = BitrixVoximplantSipTable::getList([
'filter' => [
'CONFIG_ID' => $arParams["CONFIG_ID"],
'APP_ID' => $server->getAppId()
],
'select' => ["CNT" => new BitrixMainEntityExpressionField('CNT', 'COUNT(1)')],
]);
$arResCnt = $dbResCnt->fetch();
if (!$arResCnt || $arResCnt["CNT"] <= 0)
{
throw new BitrixRestRestException("Specified CONFIG_ID is not found", BitrixRestRestException::ERROR_NOT_FOUND, CRestServer::STATUS_NOT_FOUND);
}
if (!isset($arParams['TYPE']))
{
$arParams['TYPE'] = CVoxImplantSip::TYPE_CLOUD;
}
$arUpdate = [
'TYPE' => $arParams['TYPE'],
'NEED_UPDATE' => "Y",
];
if (isset($arParams['TITLE']))
{
$arUpdate['TITLE'] = $arParams['TITLE'];
}
if (isset($arParams['SERVER']))
{
$arUpdate['SERVER'] = $arParams['SERVER'];
}
if (isset($arParams['LOGIN']))
{
$arUpdate['LOGIN'] = $arParams['LOGIN'];
}
if (isset($arParams['PASSWORD']))
{
$arUpdate['PASSWORD'] = $arParams['PASSWORD'];
}
if (count($arUpdate) == 2)
{
return 1;
}
$viSip = new CVoxImplantSip();
$result = $viSip->Update($arParams["CONFIG_ID"], $arUpdate);
if (!$result || $viSip->GetError()->error)
{
throw new BitrixRestRestException($viSip->GetError()->msg, $viSip->GetError()->code, CRestServer::STATUS_WRONG_REQUEST);
}
return 1;
}