Your IP : 18.188.27.24


Current Path : /home/bitrix/ext_www/royal-thermo.com.ua/bitrix/modules/seo/lib/engine/
Upload File :
Current File : /home/bitrix/ext_www/royal-thermo.com.ua/bitrix/modules/seo/lib/engine/yandexexception.php

<?php
namespace Bitrix\Seo\Engine;

class YandexException
	extends \Exception
{
	protected $code;
	protected $message;

	protected $result;

	public function __construct($queryResult, \Exception $previous = null)
	{
		$this->result = $queryResult;

		if(!$this->result)
		{
			parent::__construct('no result', 0, $previous);
		}
		elseif($this->parseError())
		{
			parent::__construct($this->code.': '.$this->message, $queryResult->status, $previous);
		}
		else
		{
			parent::__construct($queryResult->result, $queryResult->status, $previous);
		}
	}

	public function getStatus()
	{
		return $this->result->status;
	}

	protected function parseError()
	{
		$matches = array();
		if(preg_match("/<error code=\"([^\"]+)\"><message>([^<]+)<\/message><\/error>/", $this->result->result, $matches))
		{
			$this->code = $matches[1];
			$this->message = $matches[2];
			return true;
		}
		return false;
	}
}