• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Chat/ChatFactory.php
  • Класс: BitrixImV2ChatChatFactory
  • Вызов: ChatFactory::getChat
public function getChat($params): ?Chat
{
	$type = $params['TYPE'] ?? $params['MESSAGE_TYPE'] ?? '';

	if (empty($params))
	{
		return null;
	}
	if (is_numeric($params))
	{
		$params = ['CHAT_ID' => (int)$params];
	}
	elseif (is_string($params))
	{
		$params = ['DIALOG_ID' => $params];
		if (BitrixImCommon::isChatId($params['DIALOG_ID']))
		{
			$params['CHAT_ID'] = BitrixImDialog::getChatId($params['DIALOG_ID']);
		}
	}

	$findResult = $this->findChat($params);

	if ($findResult->hasResult())
	{
		$chatParams = $findResult->getResult();

		return $this->initChat($chatParams);
	}

	if (
		$type === Chat::IM_TYPE_SYSTEM
		|| $type ===  Chat::IM_TYPE_PRIVATE
	)
	{
		$addResult = $this->addChat($params);
		if ($addResult->hasResult())
		{
			$chat = $addResult->getResult()['CHAT'];
			$chat->setContext($this->context);

			return $chat;
		}
	}

	return null;
}