- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/sync/managers/datasyncmanager.php
- Класс: BitrixCalendarSyncManagersDataSyncManager
- Вызов: DataSyncManager::syncConnection
private function syncConnection(Connection $connection): Result
{
$result = new Result();
$logger = null;
if (
RequestLogger::isEnabled()
)
{
$logger = new RequestLogger($connection->getOwner()->getId(), $connection->getVendor()->getCode());
}
$client = $this->initClient($connection);
$calendarsList = $client->GetCalendarList($connection->getServer()->getBasePath(), null);
if ($client->getError())
{
$error = $this->processError($client->getError());
$result->setData([
'lastResult' => $error,
'syncStatus' => false,
]);
return $result;
}
if (!$calendarsList || !is_array($calendarsList))
{
$result->setData([
'lastResult' => '[204] No Content',
'syncStatus' => true,
]);
return $result;
}
$calendarsList = $this->syncSections($connection, $calendarsList);
foreach ($calendarsList as $calendar)
{
[$events, $eventsMap] = $this->getEventsToSync(
$connection,
$client,
$calendar,
$logger
);
if ($client->getError())
{
$error = $this->processError($client->getError());
$result->setData([
'lastResult' => $error,
'syncStatus' => false,
]);
return $result;
}
foreach ($events as $event)
{
$this->modifyEvent(
$connection,
$client,
$event,
$eventsMap,
$calendar
);
}
}
$result->setData([
'lastResult' => '[200] OK',
'syncStatus' => true,
]);
return $result;
}