- Модуль: 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;
}