- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/V2/Chat/FavoriteChat.php
- Класс: BitrixImV2ChatFavoriteChat
- Вызов: FavoriteChat::add
public function add(array $params, ?Context $context = null): Result
{
$result = new Result;
$paramsResult = $this->prepareParams($params);
if (!$paramsResult->isSuccess())
{
return $result->addErrors($paramsResult->getErrors());
}
$params = $paramsResult->getResult();
$chat = $this->getFavoriteChat($params['AUTHOR_ID'] ?? null);
if (!$chat)
{
$chat = new static($params);
$chat
->setTitle(Loc::getMessage('IM_CHAT_FAVORITE_TITLE_V2'))
->setDescription(Loc::getMessage('IM_CHAT_FAVORITE_DESCRIPTION'))
->save()
;
if (!$chat->getChatId())
{
return $result->addError(new ChatError(ChatError::CREATION_ERROR));
}
if ($chat->getAuthorId() > 0)
{
RelationTable::add([
'CHAT_ID' => $chat->getChatId(),
'MESSAGE_TYPE' => IM_MESSAGE_PRIVATE,
'USER_ID' => $chat->getAuthorId(),
'STATUS' => IM_STATUS_READ,
]);
}
}
$result->setResult([
'CHAT_ID' => $chat->getChatId(),
'CHAT' => $chat,
]);
return $result;
}