1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
SoftDeletionStrategy.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Im\V2\Message\Delete\Strategy;
4
5
use Bitrix\Im\V2\Chat\ChatError;
6
use Bitrix\Im\V2\Chat\NullChat;
7
use Bitrix\Im\V2\Message;
8
use Bitrix\Im\V2\Result;
9
use Bitrix\Im\V2\Sync\Event;
10
use Bitrix\Main\Localization\Loc;
11
12
class
SoftDeletionStrategy
extends
DeletionStrategy
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
{
27
throw
new
InterruptedExecutionException
(
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
}
Bitrix\Im\V2\Chat\ChatError
Определения
ChatError.php:9
Bitrix\Im\V2\Chat\ChatError\NOT_FOUND
const NOT_FOUND
Определения
ChatError.php:20
Bitrix\Im\V2\Chat\NullChat
Определения
NullChat.php:19
Bitrix\Im\V2\Message\Delete\Strategy\DeletionStrategy
Определения
DeletionStrategy.php:17
Bitrix\Im\V2\Message\Delete\Strategy\DeletionStrategy\logToSync
logToSync(string $event)
Определения
DeletionStrategy.php:55
Bitrix\Im\V2\Message\Delete\Strategy\DeletionStrategy\checkResult
checkResult(Result $result)
Определения
DeletionStrategy.php:121
Bitrix\Im\V2\Message\Delete\Strategy\InterruptedExecutionException
Определения
InterruptedExecutionException.php:8
Bitrix\Im\V2\Message\Delete\Strategy\SoftDeletionStrategy
Определения
SoftDeletionStrategy.php:13
Bitrix\Im\V2\Message\Delete\Strategy\SoftDeletionStrategy\onBeforeDelete
onBeforeDelete()
Определения
SoftDeletionStrategy.php:23
Bitrix\Im\V2\Message\Delete\Strategy\SoftDeletionStrategy\execute
execute()
Определения
SoftDeletionStrategy.php:14
Bitrix\Im\V2\Message\Delete\Strategy\SoftDeletionStrategy\onAfterDelete
onAfterDelete()
Определения
SoftDeletionStrategy.php:45
Bitrix\Main\DB\Result
Определения
result.php:20
$result
$result
Определения
get_property_values.php:14
Bitrix\Im\Message
Определения
Uuid.php:3
$message
$message
Определения
payment.php:8
bitrix
modules
im
lib
V2
Message
Delete
Strategy
SoftDeletionStrategy.php
Создано системой
1.14.0