Your IP : 18.119.108.47


Current Path : /var/www/www-root/data/www/monolith-realty.ru/bitrix/modules/rest/lib/
Upload File :
Current File : /var/www/www-root/data/www/monolith-realty.ru/bitrix/modules/rest/lib/handlerhelper.php

<?php
/**
 * Created by PhpStorm.
 * User: sigurd
 * Date: 17.01.17
 * Time: 10:43
 */

namespace Bitrix\Rest;


class HandlerHelper
{
	const ERROR_UNSUPPORTED_PROTOCOL = 'ERROR_UNSUPPORTED_PROTOCOL';
	const ERROR_WRONG_HANDLER_URL = 'ERROR_WRONG_HANDLER_URL';
	const ERROR_HANDLER_URL_MATCH = 'ERROR_HANDLER_URL_MATCH';

	protected static $applicationList = array();

	/**
	 * Checks callback URL validity.
	 *
	 * @param string $handlerUrl Callback URL.
	 * @param array $appInfo Application info.
	 * @param bool|true $checkInstallUrl Flag, whether to check URL_INSTALL field.
	 *
	 * @return bool
	 *
	 * @throws RestException
	 */
	public static function checkCallback($handlerUrl, $appInfo = array(), $checkInstallUrl = true)
	{
		$callbackData = parse_url($handlerUrl);

		if(is_array($callbackData)
			&& $callbackData['host'] <> ''
			&& mb_strpos($callbackData['host'], '.') > 0
		)
		{
			if($callbackData['scheme'] !== 'http' && $callbackData['scheme'] !== 'https')
			{
				throw new RestException('Unsupported handler protocol', static::ERROR_UNSUPPORTED_PROTOCOL);
			}
		}
		else
		{
			throw new RestException('Wrong handler URL', static::ERROR_WRONG_HANDLER_URL);
		}

		return true;
	}

	public static function storeApplicationList($PLACEMENT, $applicationList)
	{
		static::$applicationList[$PLACEMENT] = $applicationList;
	}

	public static function getApplicationList($PLACEMENT)
	{
		return isset(static::$applicationList[$PLACEMENT]) && is_array(static::$applicationList[$PLACEMENT])
			? static::$applicationList[$PLACEMENT]
			: array();
	}
}