Your IP : 3.145.72.240


Current Path : /var/www/www-root/data/www/monolith-realty.ru/bitrix/modules/location/lib/controller/
Upload File :
Current File : /var/www/www-root/data/www/monolith-realty.ru/bitrix/modules/location/lib/controller/address.php

<?php

namespace Bitrix\Location\Controller;

use Bitrix\Location\Entity\Address\Converter\ArrayConverter;
use Bitrix\Location\Infrastructure\Service\ErrorService;
use Bitrix\Location\Service;

/**
 * Class Address
 * @package Bitrix\Location\Controller
 * Facade
 */
class Address extends \Bitrix\Main\Engine\Controller
{
	protected function init()
	{
		parent::init();
		ErrorService::getInstance()->setThrowExceptionOnError(true);
	}

	protected function getDefaultPreFilters()
	{
		return [];
	}

	/**
	 * @param int $addressId
	 * @return array|null
	 * @throws \Bitrix\Main\ArgumentException
	 * @throws \Bitrix\Main\ObjectPropertyException
	 * @throws \Bitrix\Main\SystemException
	 */
	public function findById(int $addressId): array
	{
		$result = null;

		if($address = Service\AddressService::getInstance()->findById($addressId))
		{
			$result = ArrayConverter::convertToArray($address);
		}

		return $result;
	}

	/**
	 * @param \Bitrix\Location\Entity\Address[] $collection
	 * @return array
	 */
	protected function createArrayFromAddressCollection(array $collection): array
	{
		$result = [];

		foreach ($collection as $address)
		{
			$result[] = ArrayConverter::convertToArray($address);
		}

		return $result;
	}

	/**
	 * @param array $address
	 * @return array
	 */
	public static function saveAction(array $address): array
	{
		$entity = ArrayConverter::convertFromArray($address);
		$result = $entity->save();

		return [
			'isSuccess' => $result->isSuccess(),
			'errors' => $result->getErrorMessages(),
			'address' => ArrayConverter::convertToArray($entity)
		];
	}

	/**
	 * @param int $addressId
	 * @return \Bitrix\Main\ORM\Data\DeleteResult
	 * @throws \Exception
	 */
	public function deleteAction(int $addressId): \Bitrix\Main\ORM\Data\DeleteResult
	{
		return Service\AddressService::getInstance()->delete($addressId);
	}
}