• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Chat.php
  • Класс: BitrixImV2Chat
  • Вызов: Chat::unreadToMessage
public function unreadToMessage(Message $message): Result
{
	$result = new Result();

	if ($message->getChatId() !== $this->chatId)
	{
		return $result->addError(new MessageError(MessageError::MESSAGE_NOT_FOUND));
	}

	$readService = $this->getReadService();
	$lastId = $readService->getLastMessageIdInChat($this->chatId);
	$counter = $readService->unreadTo($message)->getResult()['COUNTER'];
	$lastMessageIds = $this->getLastMessages($lastId, $message->getMessageId());
	$lastMessageStatuses = $this->getReadService()->getViewedService()->getMessageStatuses($lastMessageIds);

	/*if (MainLoader::includeModule('pull'))
	{
		$this->sendPushUnreadSelf($message->getMessageId(), $lastId, $counter, $lastMessageStatuses);
		$this->sendPushUnreadOpponent($lastMessageStatuses[$lastId] ?? IM_MESSAGE_STATUS_RECEIVED, $lastId, $lastMessageStatuses);
	}*/

	return $result->setResult([
		'CHAT_ID' => $this->chatId,
		'LAST_ID' => $lastId,
		'COUNTER' => $counter,
		'UNREAD_TO' => $message->getId(),
		'LAST_MESSAGE_STATUSES' => $lastMessageStatuses,
	]);
}