• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/delivery/wizard/yandextaxi.php
  • Класс: BitrixSalesCenterDeliveryWizardYandexTaxi
  • Вызов: YandexTaxi::validateSettings
protected function validateSettings(array $settings): Result
{
	$validationResult = parent::validateSettings($settings);
	if (!$validationResult->isSuccess())
	{
		return $validationResult;
	}

	if (!isset($settings['OAUTH_TOKEN']) || empty($settings['OAUTH_TOKEN']))
	{
		return $validationResult->addError(
			new Error(
				Loc::getMessage('SALESCENTER_CONTROLLER_DELIVERY_INSTALLATION_YANDEX_ERROR_MISSING_TOKEN')
			)
		);
	}
	else
	{
		$this->api->getTransport()->getOauthTokenProvider()->setToken($settings['OAUTH_TOKEN']);

		$currentRegion = $this->regionFinder->getCurrentRegion();
		if (!$currentRegion)
		{
			return $validationResult->addError(new Error('Unexpected region'));
		}

		$availableTariffs = $this->tariffsChecker->getAvailableTariffs(
			$this->regionCoordinatesMapper->getRegionCoordinates($currentRegion)
		);

		if (is_null($availableTariffs))
		{
			return $validationResult->addError(
				new Error(
					Loc::getMessage('SALESCENTER_CONTROLLER_DELIVERY_INSTALLATION_YANDEX_ERROR_INVALID_TOKEN')
				)
			);
		}

		if (empty($availableTariffs))
		{
			/** @var BitrixSaleDeliveryServicesBase $handlerClass */
			$handlerClass = $this->handler->getHandlerClass();

			return $validationResult->addError(
				new Error(
					Loc::getMessage(
						'SALESCENTER_CONTROLLER_DELIVERY_INSTALLATION_YANDEX_ERROR_TARIFF_NOT_SUPPORTED',
						['#SERVICE_NAME#' => $handlerClass::getClassTitle()]
					)
				)
			);
		}
	}

	return $validationResult;
}