Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/modules/catalog/lib/restview/
Upload File :
Current File : /var/www/homesaver/www/bitrix/modules/catalog/lib/restview/productpropertysection.php

<?php

namespace Bitrix\Catalog\RestView;

use Bitrix\Rest\Integration\View\Attributes;
use Bitrix\Rest\Integration\View\DataType;
use Bitrix\Rest\Integration\View\Base;

final class ProductPropertySection extends Base
{
	/**
	 * @return array[]
	 */
	public function getFields()
	{
		return [
			'PROPERTY_ID' => [
				'TYPE' => DataType::TYPE_INT,
				'ATTRIBUTES' => [
					Attributes::REQUIRED,
				],
			],
			'SMART_FILTER' => [
				'TYPE' => DataType::TYPE_CHAR,
			],
			'DISPLAY_TYPE' => [
				'TYPE' => DataType::TYPE_CHAR,
			],
			'DISPLAY_EXPANDED' => [
				'TYPE' => DataType::TYPE_CHAR,
			],
			'FILTER_HINT' => [
				'TYPE' => DataType::TYPE_STRING,
			],
		];
	}

	/**
	 * @inheritDoc
	 */
	public function internalizeArguments($name, $arguments): array
	{
		if ($name === 'set')
		{
			$fields = $arguments['fields'];
			if (!empty($fields))
			{
				$arguments['fields'] = $this->internalizeFieldsUpdate($fields);
			}
		}
		else
		{
			parent::internalizeArguments($name, $arguments);
		}

		return $arguments;
	}

	/**
	 * @inheritDoc
	 */
	public function convertKeysToSnakeCaseArguments($name, $arguments)
	{
		if ($name === 'set')
		{
			if (isset($arguments['fields']))
			{
				$fields = $arguments['fields'];
				if (!empty($fields))
				{
					$arguments['fields'] = $this->convertKeysToSnakeCaseFields($fields);
				}
			}
		}
		else
		{
			$arguments = parent::convertKeysToSnakeCaseArguments($name, $arguments);
		}

		return $arguments;
	}

	/**
	 * @inheritDoc
	 */
	public function externalizeResult($name, $fields): array
	{
		if ($name !== 'set')
		{
			parent::externalizeResult($name, $fields);
		}

		return $fields;
	}
}