Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/calendar/lib/integration/im/ |
Upload File : |
<?php namespace Bitrix\Calendar\Integration\Im; use Bitrix\Calendar\Core\Event\Event; use Bitrix\Calendar\Core\EventCategory\EventCategory; use Bitrix\Calendar\Internals\Exception\ImException; final class OpenEventService extends AbstractImService { private static ?self $instance; public static function getInstance(): self { self::$instance ??= new self(); return self::$instance; } public function sendCalendarEventMessage(Event $event, EventCategory $eventCategory): int { $attach = $this->createMessageAttach($event); $messageId = \CIMChat::AddMessage([ 'FROM_USER_ID' => $event->getCreator()->getId(), 'TO_CHAT_ID' => $eventCategory->getChannelId(), 'MESSAGE' => $this->composeMessageFromEvent($event), 'PARAMS' => [ 'ATTACH' => $attach, ], 'SKIP_USER_CHECK' => 'Y', ]); if ($messageId === false) { throw new ImException('Cannot create message'); } return $messageId; } public function updateCalendarEventMessage(Event $event): bool { $eventOptions = $event->getEventOption(); $threadId = $eventOptions->getThreadId(); $isUpdated = \CIMMessenger::Update( id: $eventOptions->getThreadId(), text: $this->composeMessageFromEvent($event) ); $isDeleted = \CIMMessageParam::DeleteAll($threadId); $isAttachSet = \CIMMessageParam::Set($threadId, [$this->createMessageAttach($event)]); return $isUpdated && $isDeleted && $isAttachSet; } private function composeMessageFromEvent(Event $event): string { return $event->getName(); } private function createMessageAttach(Event $event): \CIMMessageParamAttach { return \Bitrix\Calendar\Ui\Preview\Event::getImAttach(['eventId' => $event->getId()]); } }