- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/sync/google/queuemanager.php
- Класс: BitrixCalendarSyncGoogleQueueManager
- Вызов: QueueManager::updateEvent
static function updateEvent(array $event): void
{
$google = new GoogleApiSync($event['OWNER_ID']);
$fields = $google->saveEvent($event, $event['GAPI_CALENDAR_ID'], []);
if ($errors = $google->getTransportErrors())
{
$googleHelper = ServiceLocator::getInstance()->get('calendar.service.google.helper');
if (is_array($errors))
{
foreach ($errors as $error)
{
if (
$googleHelper->isDeletedResource($error['message'])
|| $googleHelper->isNotFoundError($error['message'])
)
{
CCalendarEvent::updateEventFields($event, [
'G_EVENT_ID' => '',
'DAV_XML_ID' => '',
'CAL_DAV_LABEL' => '',
'SYNC_STATUS' => Dictionary::SYNC_STATUS['create'],
]);
self::createEvent($event);
return;
}
}
}
}
else if ($fields !== null)
{
CCalendarEvent::updateEventFields($event, [
'CAL_DAV_LABEL' => $fields['CAL_DAV_LABEL'],
'SYNC_STATUS' => Dictionary::SYNC_STATUS['success'],
]);
}
}