- Модуль: imconnector
- Путь к файлу: ~/bitrix/modules/imconnector/lib/rest/customconnectors.php
- Класс: BitrixImConnectorRestCustomConnectors
- Вызов: CustomConnectors::register
static function register($params, $n, CRestServer $server)
{
if ($server->getAuthType() !== Auth::AUTH_TYPE)
{
throw new AuthTypeException("Application context required");
}
$result = array(
'result' => false
);
$converter = new Converter(Converter::TO_UPPER | Converter::KEYS | Converter::RECURSIVE);
$params = $converter->process($params);
$clientId = $server->getClientId();
$row = AppTable::getByClientId($clientId);
$appId = $row['ID'];
if (mb_strpos($params['ID'], '.') !== false)
{
$result = array(
'result' => false,
'error' => Library::ERROR_IMCONNECTOR_REST_APPLICATION_REGISTRATION_ERROR_POINT,
'error_description' => Loc::getMessage('IMCONNECTOR_REST_APPLICATION_REGISTRATION_ERROR_POINT')
);
}
else if (
!empty($params['ID'])
&& !empty($params['NAME'])
&& !empty($params['ICON']['DATA_IMAGE'])
&& !empty($appId)
&& !empty($params['PLACEMENT_HANDLER'])
)
{
$registerParams = array(
'ID' => mb_strtolower($params['ID']),
'NAME' => $params['NAME'],
'ICON' => $params['ICON'],
'COMPONENT' => Library::COMPONENT_NAME_REST,
'REST_APP_ID' => $appId,
'PLACEMENT_HANDLER' => $params['PLACEMENT_HANDLER']
);
if (isset($params['ICON_DISABLED']))
{
$registerParams['ICON_DISABLED'] = $params['ICON_DISABLED'];
}
if (isset($params['DEL_EXTERNAL_MESSAGES']))
{
$registerParams['DEL_EXTERNAL_MESSAGES'] = $params['DEL_EXTERNAL_MESSAGES'];
}
if (isset($params['EDIT_INTERNAL_MESSAGES']))
{
$registerParams['EDIT_INTERNAL_MESSAGES'] = $params['EDIT_INTERNAL_MESSAGES'];
}
if (isset($params['DEL_INTERNAL_MESSAGES']))
{
$registerParams['DEL_INTERNAL_MESSAGES'] = $params['DEL_INTERNAL_MESSAGES'];
}
if (isset($params['NEWSLETTER']))
{
$registerParams['NEWSLETTER'] = $params['NEWSLETTER'];
}
if (isset($params['NEED_SYSTEM_MESSAGES']))
{
$registerParams['NEED_SYSTEM_MESSAGES'] = $params['NEED_SYSTEM_MESSAGES'];
}
if (isset($params['NEED_SIGNATURE']))
{
$registerParams['NEED_SIGNATURE'] = $params['NEED_SIGNATURE'];
}
if (isset($params['CHAT_GROUP']))
{
$registerParams['CHAT_GROUP'] = $params['CHAT_GROUP'];
}
if (isset($params['COMMENT']))
{
$registerParams['COMMENT'] = $params['COMMENT'];
}
if (Helper::registerApp($registerParams))
{
$result = array(
'result' => true
);
if ($row['CODE'])
{
$id = uniqid($row['CODE'], true);
AddEventToStatFile(
'imconnector',
'registerRestConnector',
$id,
$row['CODE'],
'appCode'
);
AddEventToStatFile(
'imconnector',
'registerRestConnector',
$id,
$registerParams['ID'],
'connectorCode'
);
}
}
else
{
$result = array(
'result' => false,
'error' => Library::ERROR_IMCONNECTOR_REST_APPLICATION_REGISTRATION_ERROR,
'error_description' => Loc::getMessage('IMCONNECTOR_REST_APPLICATION_REGISTRATION_ERROR')
);
}
}
else if (empty($params['ID']))
{
$result = array(
'result' => false,
'error' => Library::ERROR_IMCONNECTOR_REST_CONNECTOR_ID_REQUIRED,
'error_description' => Loc::getMessage('IMCONNECTOR_REST_CONNECTOR_ID_REQUIRED')
);
}
else if (empty($params['NAME']))
{
$result = array(
'result' => false,
'error' => Library::ERROR_IMCONNECTOR_REST_NAME_REQUIRED,
'error_description' => Loc::getMessage('IMCONNECTOR_REST_NAME_REQUIRED')
);
}
else if (empty($params['ICON']['DATA_IMAGE']))
{
$result = array(
'result' => false,
'error' => Library::ERROR_IMCONNECTOR_REST_ICON_REQUIRED,
'error_description' => Loc::getMessage('IMCONNECTOR_REST_ICON_REQUIRED')
);
}
else if (empty($appId))
{
$result = array(
'result' => false,
'error' => Library::ERROR_IMCONNECTOR_REST_NO_APPLICATION_ID,
'error_description' => Loc::getMessage('IMCONNECTOR_REST_NO_APPLICATION_ID')
);
}
else if (empty($params['PLACEMENT_HANDLER']))
{
$result = array(
'result' => false,
'error' => Library::ERROR_IMCONNECTOR_REST_NO_PLACEMENT_HANDLER,
'error_description' => Loc::getMessage('IMCONNECTOR_REST_NO_PLACEMENT_HANDLER')
);
}
else
{
$result = array(
'result' => false,
'error' => Library::ERROR_IMCONNECTOR_REST_GENERAL_CONNECTOR_REGISTRATION_ERROR,
'error_description' => Loc::getMessage('IMCONNECTOR_REST_GENERAL_CONNECTOR_REGISTRATION_ERROR')
);
}
return $result;
}