1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
openeventservice.php
См. документацию.
1<?php
2
3namespace Bitrix\Calendar\Integration\Im;
4
5use Bitrix\Calendar\Core\Event\Event;
6use Bitrix\Calendar\Core\EventCategory\EventCategory;
7use Bitrix\Calendar\Internals\Exception\ImException;
8
10{
11 private static ?self $instance;
12
13 public static function getInstance(): self
14 {
15 self::$instance ??= new self();
16
17 return self::$instance;
18 }
19
20 public function sendCalendarEventMessage(Event $event, EventCategory $eventCategory): int
21 {
22 $attach = $this->createMessageAttach($event);
23
24 $messageId = \CIMChat::AddMessage([
25 'FROM_USER_ID' => $event->getCreator()->getId(),
26 'TO_CHAT_ID' => $eventCategory->getChannelId(),
27 'MESSAGE' => $this->composeMessageFromEvent($event),
28 'PARAMS' => [
29 'ATTACH' => $attach,
30 ],
31 'SKIP_USER_CHECK' => 'Y',
32 ]);
33
34 if ($messageId === false)
35 {
36 throw new ImException('Cannot create message');
37 }
38
39 return $messageId;
40 }
41
43 {
44 $eventOptions = $event->getEventOption();
45 $threadId = $eventOptions->getThreadId();
46
47 $isUpdated = \CIMMessenger::Update(
48 id: $eventOptions->getThreadId(),
49 text: $this->composeMessageFromEvent($event)
50 );
51 $isDeleted = \CIMMessageParam::DeleteAll($threadId);
52 $isAttachSet = \CIMMessageParam::Set($threadId, [$this->createMessageAttach($event)]);
53
54 return $isUpdated && $isDeleted && $isAttachSet;
55 }
56
57 private function composeMessageFromEvent(Event $event): string
58 {
59 return $event->getName();
60 }
61
62 private function createMessageAttach(Event $event): \CIMMessageParamAttach
63 {
64 return \Bitrix\Calendar\Ui\Preview\Event::getImAttach(['eventId' => $event->getId()]);
65 }
66}
if(! $messageFields||!isset($messageFields['message_id'])||!isset($messageFields['status'])||!CModule::IncludeModule("messageservice")) $messageId
Определения callback_ismscenter.php:26
sendCalendarEventMessage(Event $event, EventCategory $eventCategory)
Определения openeventservice.php:20
$event
Определения prolog_after.php:141