26 ->where(
'CHAT_ID', $chatId)
27 ->where(
'AUTHOR_ID', $this->getContext()->getUserId())
30 return LinkFavoriteTable::getCount(
$filter);
40 if (!$saveResult->isSuccess())
42 return $result->addErrors($saveResult->getErrors());
47 $pushRecipient = [
'RECIPIENT' => [$this->getContext()->getUserId()]];
50 ->setContext($this->context)
51 ->sendFull($favoriteMessage, static::ADD_FAVORITE_MESSAGE_EVENT, $pushRecipient)
63 if ($favoriteMessage ===
null)
68 $deleteResult = $favoriteMessage->delete();
70 if (!$deleteResult->isSuccess())
72 return $result->addErrors($deleteResult->getErrors());
77 if (!$deleteParamResult->isSuccess())
79 return $result->addErrors($deleteParamResult->getErrors());
82 $pushRecipient = [
'RECIPIENT' => [$this->getContext()->getUserId()]];
85 ->setContext($this->context)
86 ->sendIdOnly($favoriteMessage, static::DELETE_FAVORITE_MESSAGE_EVENT, $pushRecipient)
98 if ($favoriteMessages ===
null || $favoriteMessages->count() === 0)
103 $deleteResult = $favoriteMessages->delete();
105 if (!$deleteResult->isSuccess())
107 return $result->addErrors($deleteResult->getErrors());
111 foreach ($favoriteMessages as $favoriteMessage)
113 $pushRecipient = [
'RECIPIENT' => [$favoriteMessage->getAuthorId()]];
115 ->setContext($this->context)
116 ->sendIdOnly($favoriteMessage,static::DELETE_FAVORITE_MESSAGE_EVENT, $pushRecipient)
123 public function unmarkMessagesAsFavoriteForAll(MessageCollection
$messages): Result
129 if ($favoriteMessages ===
null || $favoriteMessages->count() === 0)
134 $deleteResult = $favoriteMessages->delete();
136 if (!$deleteResult->isSuccess())
138 return $result->addErrors($deleteResult->getErrors());
142 foreach ($favoriteMessages as $favoriteMessage)
144 $pushRecipient = [
'RECIPIENT' => [$favoriteMessage->getAuthorId()]];
146 ->setContext($this->context)
147 ->sendIdOnly($favoriteMessage,static::DELETE_FAVORITE_MESSAGE_EVENT, $pushRecipient)
158 return $favoriteMessage->
save();
162 return (
new Result())->addError(
new MessageError(MessageError::MESSAGE_IS_ALREADY_FAVORITE));
168 $favoriteListParam =
$message->getParams()->get(Params::FAVORITE)->getValue() ?: [];
169 $userId = $this->getContext()->getUserId();
170 if (!in_array(
$userId, $favoriteListParam,
true))
174 \CIMMessageParam::SendPull(
$message->getMessageId(), [Params::FAVORITE]);
182 $favoriteListParam =
$message->getParams()->get(Params::FAVORITE)->getValue() ?: [];
183 $userId = $this->getContext()->getUserId();
184 if (in_array(
$userId, $favoriteListParam,
true))
188 \CIMMessageParam::SendPull(
$message->getMessageId(), [Params::FAVORITE]);