1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
SoftDeletionStrategy.php
См. документацию.
1<?php
2
3namespace Bitrix\Im\V2\Message\Delete\Strategy;
4
5use Bitrix\Im\V2\Chat\ChatError;
6use Bitrix\Im\V2\Chat\NullChat;
7use Bitrix\Im\V2\Message;
8use Bitrix\Im\V2\Result;
9use Bitrix\Im\V2\Sync\Event;
10use Bitrix\Main\Localization\Loc;
11
13{
14 protected function execute(): void
15 {
16 $result = $this->messages->save();
17 $this->checkResult($result);
18 }
19
23 protected function onBeforeDelete(): void
24 {
25 if ($this->chat instanceof NullChat)
26 {
28 (new Result())->addError(new ChatError(ChatError::NOT_FOUND))
29 );
30 }
31
32 $this->messages->fillFiles();
33
34 foreach ($this->messages as $message)
35 {
36 $message->setMessage(Loc::getMessage('IM_MESSAGE_DELETED'));
37 $message->setMessageOut($this->getMessageOut($message));
38 }
39
40 $this->messages->resetParams([
41 'IS_DELETED' => 'Y',
42 ]);
43 }
44
45 protected function onAfterDelete(): void
46 {
47 $this->logToSync(Event::DELETE_EVENT);
48 $this->deleteFiles();
49 }
50
51 private function getMessageOut(Message $message): string
52 {
53 $date = $message->getDateCreate()?->toString();
54
55 return Loc::getMessage('IM_MESSAGE_DELETED_OUT', ['#DATE#' => $date]) ?? '';
56 }
57}
const NOT_FOUND
Определения ChatError.php:20
Определения result.php:20
$result
Определения get_property_values.php:14
Определения Uuid.php:3
$message
Определения payment.php:8