• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/ical/mailinvitation/incominginvitationreplyhandler.php
  • Класс: BitrixCalendarICalMailInvitationIncomingInvitationReplyHandler
  • Вызов: IncomingInvitationReplyHandler::handleFromRequest
static function handleFromRequest(Event $event): bool
{
	$attachments = $event->getParameter('attachments');
	if (is_array($attachments))
	{
		foreach($attachments as $file)
		{
			if (in_array($file['type'], self::CONTENT_TYPES, true))
			{
				try
				{
					$fileObject = new File($file['tmp_name'], $event->getParameter('site_id'));
					$fileContent = Encoding::convertEncoding($fileObject->getContents(), SenderInvitation::CHARSET, SITE_CHARSET);
				}
				catch (FileNotFoundException $e)
				{
					AddMessage2Log('File ics not found', 'calendar', 2);
					die();
				}

				$icalComponent = InboxManager::createInstance($fileContent)
					->parseContent()
					->getComponent();

				if ($icalComponent->getMethod() === Dictionary::METHOD['reply'])
				{
					return self::fromComponent($icalComponent)
						->handle()
						->isSuccess();
				}
			}
		}
	}

	return false;
}