• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Chat/FavoriteChat.php
  • Класс: BitrixImV2ChatFavoriteChat
  • Вызов: FavoriteChat::find
static function find(array $params = [], ?Context $context = null): Result
{
	$result = new Result;

	if (empty($params['TO_USER_ID']))
	{
		$context = $context ?? Locator::getContext();
		$params['TO_USER_ID'] = $context->getUserId();
	}

	if ($params['TO_USER_ID'] <= 0)
	{
		return $result->addError(new ChatError(ChatError::WRONG_RECIPIENT));
	}

	$row = ChatTable::query()
		->setSelect(['ID', 'TYPE', 'ENTITY_TYPE', 'ENTITY_ID'])
		->where('TYPE', self::IM_TYPE_PRIVATE)
		->where('ENTITY_TYPE', self::ENTITY_TYPE_FAVORITE)
		->where('AUTHOR_ID', (int)$params['TO_USER_ID'])
		->fetch()
		;

	if ($row)
	{
		$result->setResult([
			'ID' => (int)$row['ID'],
			'TYPE' => $row['TYPE'],
			'ENTITY_TYPE' => $row['ENTITY_TYPE'],
			'ENTITY_ID' => $row['ENTITY_ID'],
		]);
	}

	return $result;
}