• Модуль: 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;
}