- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/sharing/sharingeventmanager.php
- Класс: BitrixCalendarSharingSharingEventManager
- Вызов: SharingEventManager::createEvent
public function createEvent(bool $sendInvitations = true, string $externalUserName = ''): Result
{
$result = new Result();
if (!$this->checkUserAccessibility())
{
$result->addError(new Error(Loc::getMessage('EC_SHARINGAJAX_USER_BUSY')));
return $result;
}
$eventId = (new MappersEvent())->create($this->event, [
'sendInvitations' => $sendInvitations
])->getId();
$this->event->setId($eventId);
if (!$eventId)
{
$result->addError(new Error(Loc::getMessage('EC_SHARINGAJAX_EVENT_SAVE_ERROR')));
return $result;
}
$eventLinkParams = [
'eventId' => $eventId,
'ownerId' => $this->ownerId,
'hostId' => $this->hostId,
'parentLinkHash' => $this->parentLinkHash,
'expiryDate' => Helper::createSharingLinkExpireDate(
DateTime::createFromTimestamp($this->event->getEnd()->getTimestamp()),
SharingLinkHelper::EVENT_SHARING_TYPE
),
'externalUserName' => $externalUserName,
];
$eventLink = (new SharingLinkFactory())->createEventLink($eventLinkParams);
$result->setData([
'eventLink' => $eventLink,
'event' => $this->event,
]);
return $result;
}