• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/googleapipush.php
  • Класс: BitrixCalendarSyncGoogleApiPush
  • Вызов: GoogleApiPush::stopChannel
static function stopChannel(array $row = null, $ownerId = 0): void
{
	if ($row)
	{
		if ($row['ENTITY_TYPE'] === self::TYPE_SECTION)
		{
			if (Loader::includeModule('dav'))
			{
				$connectionData = CDavConnection::getById($row['ENTITY_ID']);
				if ($ownerId === 0)
				{
					$ownerId = $connectionData['ENTITY_ID'];
				}
			}

			if ($ownerId > 0 && isset($connectionData) && !self::isConnectionError($connectionData['LAST_RESULT']))
			{
				$googleApiConnection = new GoogleApiSync($ownerId, $row['ENTITY_ID']);
				$googleApiConnection->stopChannel($row['CHANNEL_ID'], $row['RESOURCE_ID']);
			}
		}

		if ($row['ENTITY_TYPE'] === self::TYPE_SECTION)
		{
			$section = CCalendarSect::getById($row['ENTITY_ID']);
			if ($ownerId === 0)
			{
				$ownerId = $section['OWNER_ID'];
			}

			//TODO: modify the saving of the result
			if (Loader::includeModule('dav') && !empty($section['CAL_DAV_CON']))
			{
				$connectionData = CDavConnection::getById($section['CAL_DAV_CON']);
			}

			if ($ownerId > 0 && isset($connectionData) && !self::isConnectionError($connectionData['LAST_RESULT']))
			{
				$googleApiConnection = new GoogleApiSync($ownerId, $section['CAL_DAV_CON']);
				$googleApiConnection->stopChannel($row['CHANNEL_ID'], $row['RESOURCE_ID']);
			}
		}

		self::deletePushChannel($row);
	}
}