- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Controller/Chat.php
- Класс: BitrixImV2ControllerChat
- Вызов: Chat::load
private function load(BitrixImV2Chat $chat, CurrentUser $user, int $messageLimit, int $pinLimit, ?Message $targetMessage = null): array
{
$messageLimit = $this->getLimit($messageLimit);
$pinLimit = $this->getLimit($pinLimit);
$messageService = new MessageService($targetMessage ?? $chat->getLoadContextMessage());
$messages = $messageService->getMessageContext($messageLimit, Message::REST_FIELDS)->getResult();
$pins = PinCollection::find(
['CHAT_ID' => $chat->getChatId(), 'START_ID' => $chat->getStartId() ?: null],
['ID' => 'DESC'],
$pinLimit
);
$restAdapter = new RestAdapter($chat, $messages, $pins);
$rest = $restAdapter->toRestFormat();
return $messageService->fillContextPaginationData($rest, $messages, $messageLimit);
}