• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/office365/pushmanager.php
  • Класс: Bitrix\Calendar\Sync\Office365\PushManager
  • Вызов: PushManager::addSectionPush
public function addSectionPush(SectionConnection $link): Result
{
	$result = new Result();
	try
	{
		$data = $this->context->getVendorSyncService()->subscribeSection($link);

		if ($data && !empty($data['channelId']))
		{
			$result->setData([
				'CHANNEL_ID' => $data['channelId'],
				'RESOURCE_ID' => $data['id'],
				'EXPIRES' => $this->convertToDateTime($data['expirationDateTime'] ?? date('c')),
			]);
		}
		else
		{
			$result->addError(new Error('Error of create subscription.'));
		}
	}
	catch (ApiException $e)
	{
		$result->addError(new Error('Error of Push subscribing. Vendor returned error.', $e->getCode()));
	}
	catch (AuthException $e)
	{
		$result->addError(new Error('No authentication data', $e->getCode()));
	}

	return $result;
}