1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
eventcategoryrename.php
См. документацию.
1<?php
2
3namespace Bitrix\Calendar\Integration\Im;
4
5use Bitrix\Calendar\Core\Builders\EventCategory\EventCategoryBuilderFromProviderObject;
6use Bitrix\Calendar\Core\Common;
7use Bitrix\Calendar\EventCategory\Dto\EventCategoryRenameDto;
8use Bitrix\Calendar\Integration\Im\EventCategoryService as EventCategoryImIntegration;
9use Bitrix\Calendar\Internals\Log\Logger;
10use Bitrix\Calendar\OpenEvents\Controller\Request\EventCategory\UpdateEventCategoryDto;
11use Bitrix\Calendar\OpenEvents\Provider;
12use Bitrix\Calendar\OpenEvents\Service\CategoryService;
13use Bitrix\Main;
14
16{
17 private const LOG_MARKER = 'DEBUG_CALENDAR_IM_CHAT_RENAME';
18 private static ?Logger $logger = null;
19
20 public static function onChannelRename(/* args */): void
21 {
22 try
23 {
24 // this helps better understand why method fails, if wrong arguments presented by event
25 [$chatId, $name, $chatEntityType] = func_get_args();
26
28 {
29 return;
30 }
31
32 if (!is_int($chatId) || !is_string($name))
33 {
34 self::getLogger()->log([
35 'message' => 'can not process event arguments',
36 [
37 'chatId' => $chatId,
38 'name' => $name,
39 ]
40 ]);
41
42 return;
43 }
44
45 $renameDto = new EventCategoryRenameDto(
46 $chatId,
47 $name,
48 );
49 self::addBackgroundJob($renameDto);
50 }
51 catch (\Throwable $e)
52 {
53 self::getLogger()->log($e);
54 }
55 }
56
57 public static function applyChannelRenameToCategory(
58 EventCategoryRenameDto $renameDto
59 ): void
60 {
61 $userId = Common::SYSTEM_USER_ID;
62 $categoryProvider = new Provider\CategoryProvider($userId);
63 $eventCategory = $categoryProvider->getByChannelId($renameDto->chatId) ?? null;
64
65 if (!$eventCategory)
66 {
67 self::getLogger()->log([
68 'message' => 'event category not exist for connected channel',
69 ...$renameDto->toArray()
70 ]);
71
72 return;
73 }
74
75 if ($eventCategory->name === $renameDto->name)
76 {
77 return;
78 }
79
80 CategoryService::getInstance()->updateEventCategory(
81 $userId,
82 (new EventCategoryBuilderFromProviderObject($eventCategory))->build(),
83 UpdateEventCategoryDto::fromRequest(['name' => $renameDto->name])
84 );
85 }
86
87 private static function addBackgroundJob(EventCategoryRenameDto $renameDto)
88 {
89 Main\Application::getInstance()->addBackgroundJob(
90 job: [self::class, 'applyChannelRenameToCategory'],
91 args: [$renameDto],
92 );
93 }
94
95 private static function getLogger(): Logger
96 {
97 self::$logger ??= new Logger(self::LOG_MARKER);
98
99 return self::$logger;
100 }
101}
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения check_mail.php:18
static applyChannelRenameToCategory(EventCategoryRenameDto $renameDto)
Определения eventcategoryrename.php:57
static getInstance()
Определения application.php:98
$name
Определения menu_edit.php:35