• Модуль: imbot
  • Путь к файлу: ~/bitrix/modules/imbot/lib/Integration/Ui/EntitySelector/NetworkProvider.php
  • Класс: BitrixImBotIntegrationUiEntitySelectorNetworkProvider
  • Вызов: NetworkProvider::filterExistingLines
protected function filterExistingLines(array $appList): array
{
	if(empty($appList))
	{
		return $appList;
	}

	$filteringCodeList = [];
	foreach ($appList as $app)
	{
		$filteringCodeList[] = 'network_' . $app['CODE'];
	}

	$query =
		BotTable::query()
		->addSelect('CODE')
		->addSelect('APP_ID')
		->where('TYPE', 'N')
		->whereIn('CODE', $filteringCodeList)
	;

	$installedAppList = [];
	foreach ($query->exec() as $app)
	{
		$installedAppList[$app['APP_ID']] = $app;
	}

	if(empty($installedAppList))
	{
		return $appList;
	}

	$result = [];
	foreach ($appList as $app)
	{
		if(isset($installedAppList[$app['CODE']]))
		{
			continue;
		}
		$result[] = $app;
	}

	return $result;
}