- Модуль: imconnector
- Путь к файлу: ~/bitrix/modules/imconnector/lib/rest/helper.php
- Класс: BitrixImConnectorRestHelper
- Вызов: Helper::listRestConnector
static function listRestConnector(array $filter = []): array
{
$result = [];
$query = CustomConnectorsTable::query();
$query->setSelect(['*']);
$query->setCacheTtl(3600);
$query->cacheJoins(true);
if (!empty($filter))
{
$query->setFilter($filter);
}
$raw = $query->exec();
while ($row = $raw->fetch())
{
$connectorId = $row['ID_CONNECTOR'];
$result[$connectorId] = [
'ID' => mb_strtolower($connectorId),
'NAME' => $row['NAME'],
'COMPONENT' => $row['COMPONENT'],
'ICON' => $row['ICON'],
];
if (isset($row['ICON_DISABLED']) && $row['ICON_DISABLED'] !== false)
{
$result[$connectorId]['ICON_DISABLED'] = $row['ICON_DISABLED'];
}
if (isset($row['DEL_EXTERNAL_MESSAGES']))
{
if ($row['DEL_EXTERNAL_MESSAGES'] == 'Y')
{
$result[$connectorId]['DEL_EXTERNAL_MESSAGES'] = true;
}
elseif ($row['DEL_EXTERNAL_MESSAGES'] == 'N')
{
$result[$connectorId]['DEL_EXTERNAL_MESSAGES'] = false;
}
}
if (isset($row['EDIT_INTERNAL_MESSAGES']))
{
if ($row['EDIT_INTERNAL_MESSAGES'] == 'Y')
{
$result[$connectorId]['EDIT_INTERNAL_MESSAGES'] = true;
}
elseif ($row['EDIT_INTERNAL_MESSAGES'] == 'N')
{
$result[$connectorId]['EDIT_INTERNAL_MESSAGES'] = false;
}
}
if (isset($row['DEL_INTERNAL_MESSAGES']))
{
if ($row['DEL_INTERNAL_MESSAGES'] == 'Y')
{
$result[$connectorId]['DEL_INTERNAL_MESSAGES'] = true;
}
elseif ($row['DEL_INTERNAL_MESSAGES'] == 'N')
{
$result[$connectorId]['DEL_INTERNAL_MESSAGES'] = false;
}
}
if (isset($row['NEWSLETTER']))
{
if ($row['NEWSLETTER'] == 'Y')
{
$result[$connectorId]['NEWSLETTER'] = true;
}
elseif ($row['NEWSLETTER'] == 'N')
{
$result[$connectorId]['NEWSLETTER'] = false;
}
}
if (isset($row['NEED_SYSTEM_MESSAGES']))
{
if ($row['NEED_SYSTEM_MESSAGES'] == 'Y')
{
$result[$connectorId]['NEED_SYSTEM_MESSAGES'] = true;
}
elseif ($row['NEED_SYSTEM_MESSAGES'] == 'N')
{
$result[$connectorId]['NEED_SYSTEM_MESSAGES'] = false;
}
}
if (isset($row['NEED_SIGNATURE']))
{
if ($row['NEED_SIGNATURE'] == 'Y')
{
$result[$connectorId]['NEED_SIGNATURE'] = true;
}
elseif ($row['NEED_SIGNATURE'] == 'N')
{
$result[$connectorId]['NEED_SIGNATURE'] = false;
}
}
if (isset($row['CHAT_GROUP']))
{
if ($row['CHAT_GROUP'] == 'Y')
{
$result[$connectorId]['CHAT_GROUP'] = true;
}
elseif ($row['NEED_SIGNATURE'] == 'N')
{
$result[$connectorId]['CHAT_GROUP'] = false;
}
}
}
return $result;
}