• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/controller/sharingajax.php
  • Класс: BitrixCalendarControllerSharingAjax
  • Вызов: SharingAjax::getIcsFileContentAction
public function getIcsFileContentAction(string $eventLinkHash): string
{
	$result = '';
	$eventLinkHash = Application::getConnection()->getSqlHelper()->forSql($eventLinkHash);

	/** @var SharingLinkEventLink $eventLink */
	$eventLink = $this->getSharingLinkFactory()->getLinkByHash($eventLinkHash);
	if (
		!$eventLink
		|| !$eventLink->isActive()
		|| $eventLink->getObjectType() !== SharingLinkHelper::EVENT_SHARING_TYPE
	)
	{
		$this->addError(new Error('Link not found'));

		return $result;
	}

	/** @var Event $event */
	$event = (new MappersEvent())->getById($eventLink->getEventId());

	if (!$event)
	{
		$this->addError(new Error(Loc::getMessage('EC_SHARINGAJAX_EVENT_ACCESS_DENIED')));

		return $result;
	}

	$event->setName(SharingEventManager::getSharingEventNameByUserId($eventLink->getOwnerId()));
	return IcsManager::getInstance()->getIcsFileContent($event, [
		'eventUrl' => SharingHelper::getShortUrl($eventLink->getUrl()),
		'conferenceUrl' => SharingHelper::getShortUrl($eventLink->getUrl() . SharingHelper::ACTION_CONFERENCE),
	]);
}