- Модуль: messageservice
- Путь к файлу: ~/bitrix/modules/messageservice/lib/restservice.php
- Класс: BitrixMessageServiceRestService
- Вызов: RestService::addSender
static function addSender($params, $n, $server)
{
global $USER;
if(!$server->getClientId())
{
throw new AccessException("Application context required");
}
self::checkAdminPermissions();
$params = array_change_key_case($params, CASE_UPPER);
self::validateSender($params, $server);
$params['APP_ID'] = $server->getClientId();
$iterator = InternalEntityRestAppTable::getList([
'select' => ['ID'],
'filter' => [
'=APP_ID' => $params['APP_ID'],
'=CODE' => $params['CODE']
]
]);
$result = $iterator->fetch();
if ($result)
{
throw new RestException('Sender already installed!', self::ERROR_SENDER_ALREADY_INSTALLED);
}
$senderLang = [
'NAME' => $params['NAME'],
'DESCRIPTION' => isset($params['DESCRIPTION']) ? $params['DESCRIPTION'] : ''
];
unset($params['NAME'], $params['DESCRIPTION']);
$params['AUTHOR_ID'] = $USER->getId();
$result = InternalEntityRestAppTable::add($params);
if ($result->getErrors())
{
throw new RestException('Sender save error!', self::ERROR_SENDER_ADD_FAILURE);
}
$senderLang['APP_ID'] = $result->getId();
static::addSenderLang($senderLang, $server->getClientId());
$app = BitrixRestAppTable::getByClientId($params['APP_ID']);
if ($app['CODE'])
{
AddEventToStatFile(
'messageservice',
'addProvider' . $params['TYPE'],
uniqid($app['CODE'], true),
$app['CODE']
);
}
return true;
}