• Модуль: 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'],
		]);
	}
}