• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/icloud/eventmanager.php
  • Класс: BitrixCalendarSyncIcloudEventManager
  • Вызов: EventManager::saveInstance
private function saveInstance(Event $event, EventContext $context): Result
{
	$result = new Result();
	$masterLink = $context->getEventConnection();

	if (!$masterLink)
	{
		$result->addError(new Error('Master link not found'));

		return $result;
	}

	$sectionId = $context->getSectionConnection()->getVendorSectionId();
	$masterEvent = $masterLink->getEvent();
	$masterEvent->setUid($masterLink->getVendorEventId());

	$data = $this->getApiService()->saveInstance(
		$sectionId,
		$masterEvent,
		$masterLink->getData()
	);

	if ($this->getApiService()->getError())
	{
		$this->processConnectionError($this->connection, $this->getApiService()->getError());
	}

	if ($data && is_array($data))
	{
		$result->setData([
			'event' => [
				'id' => $data['XML_ID'],
				'version' => $data['MODIFICATION_LABEL'],
				'etag' => $data['MODIFICATION_LABEL'],
			],
		]);
	}
	else
	{
		$result->addError(new Error('Error while trying to save instance'));
	}

	return $result;
}