1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
IncomingMessage.php
См. документацию.
1<?php
2
3namespace Bitrix\MessageService;
4
5use Bitrix\Main\Config\Option;
6use Bitrix\Main\Error;
7use Bitrix\Main\ORM\Data\AddResult;
8use Bitrix\Main\Type\DateTime;
9use Bitrix\Messageservice\Internal\Entity\IncomingMessageTable;
10
11abstract class IncomingMessage
12{
13 abstract public static function sendMessageToChat(array $message);
14 abstract protected static function prepareBodyForSave(array $body): array;
15
16 public static function addMessage(string $senderId, array $requestBody): AddResult
17 {
18 $requestBody = static::prepareBodyForSave($requestBody);
19
20 $addResult = new AddResult();
21 $insertingData = [
22 'SENDER_ID' => $senderId,
23 'EXTERNAL_ID' => $requestBody['id'],
24 'REQUEST_BODY' => serialize($requestBody)
25 ];
26
27 try
28 {
29 $addResult = IncomingMessageTable::add($insertingData);
30 }
31 catch (\Throwable $exception)
32 {
33 if (mb_strpos($exception->getMessage(), '1062'))
34 {
35 $addResult->addError(new Error($exception->getMessage()));
36
37 return $addResult;
38 }
39
40 throw $exception;
41 }
42
43 return $addResult;
44 }
45
46 public static function confirmSendingMessage(int $internalId): void
47 {
48 IncomingMessageTable::update($internalId, [
49 'DATE_EXEC' => new DateTime()
50 ]);
51 }
52
53 public static function cleanUpAgent(): string
54 {
55 $period = abs((int)Option::get("messageservice", "clean_up_period"));
56 $periodInSeconds = $period * 24 * 3600;
57
58 if ($periodInSeconds > 0)
59 {
61 $datetime = $connection->getSqlHelper()->addSecondsToDateTime('-' . $periodInSeconds);
62 $connection->queryExecute("DELETE FROM b_messageservice_incoming_message WHERE DATE_EXEC <= {$datetime}");
63 }
64
65 return __METHOD__.'();';
66 }
67}
$connection
Определения actionsdefinitions.php:38
static getConnection($name="")
Определения application.php:638
Определения error.php:15
static add(array $data)
Определения datamanager.php:877
static update($primary, array $data)
Определения datamanager.php:1256
static confirmSendingMessage(int $internalId)
Определения IncomingMessage.php:46
static prepareBodyForSave(array $body)
static addMessage(string $senderId, array $requestBody)
Определения IncomingMessage.php:16
static sendMessageToChat(array $message)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$message
Определения payment.php:8