1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
syncchatparticipationwithevent.php
См. документацию.
1<?php
2
3namespace Bitrix\Calendar\Internals\EventManager\EventSubscriber\Event;
4
5use Bitrix\Calendar\Event\Event\AfterMeetingStatusChanged;
6use Bitrix\Calendar\Integration\Im\ChatService;
7use Bitrix\Calendar\Internals\EventManager\EventSubscriber\EventSubscriberInterface;
8use Bitrix\Calendar\Internals\EventManager\EventSubscriber\EventSubscriberResponseTrait;
9use Bitrix\Main\Event;
10use Bitrix\Main\EventResult;
11
13{
14 use CalendarEventSubscriberTrait;
15 use EventSubscriberResponseTrait;
16
17 public function __invoke(Event $event): EventResult
18 {
19 $newStatus = $event->getParameter('newStatus');
20
21 $calendarEvent = $this->getCalendarEvent($event);
22 if (!$calendarEvent || $calendarEvent->getRecurringRule())
23 {
24 // event not found or recurring one
25 return $this->makeUndefinedResponse();
26 }
27
28 $chatId = $calendarEvent->getMeetingDescription()?->getFields()['CHAT_ID'] ?? null;
29
30 if (!$chatId)
31 {
32 // chat for event not created yet
33 return $this->makeUndefinedResponse();
34 }
35
36 $result = match ($newStatus)
37 {
38 'N' => ChatService::getInstance()->deleteUserFromChat($event->getParameter('userId'), (int)$chatId),
39 'Y' => ChatService::getInstance()->addUserToChat($event->getParameter('userId'), (int)$chatId),
40 default => null,
41 };
42
43 return $result ? $this->makeSuccessResponse() : $this->makeErrorResponse();
44 }
45
46 public function getEventClasses(): array
47 {
48 return [
49 AfterMeetingStatusChanged::class,
50 ];
51 }
52}
Определения event.php:5
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$event
Определения prolog_after.php:141