• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/lib/integration/view/base.php
  • Класс: BitrixRestIntegrationViewBase
  • Вызов: Base::externalizeValue
protected function externalizeValue($name, $value, $fields, $fieldsInfo): Result
{
	$r = new Result();

	$type = isset($fieldsInfo[$name]['TYPE']) ? $fieldsInfo[$name]['TYPE']:'';

	if(empty($value))
	{
		$value = $this->externalizeEmptyValue($name, $value, $fields, $fieldsInfo);
	}
	else
	{
		if($type === DataType::TYPE_FLOAT)
		{
			$value = floatval($value);
		}
		elseif($type === DataType::TYPE_INT)
		{
			$value = (int)$value;
		}
		elseif($type === DataType::TYPE_DATE)
		{
			$date = $this->externalizeDateValue($value);

			if($date->isSuccess())
			{
				$value = $date->getData()[0];
			}
			else
			{
				$r->addErrors($date->getErrors());
			}
		}
		elseif($type === DataType::TYPE_DATETIME)
		{
			$date = $this->externalizeDateTimeValue($value);

			if($date->isSuccess())
			{
				$value = $date->getData()[0];
			}
			else
			{
				$r->addErrors($date->getErrors());
			}
		}
		elseif($type === DataType::TYPE_FILE)
		{
			$value = $this->externalizeFileValue($name, $value, $fields);
		}
		else
		{
			$r = $this->externalizeExtendedTypeValue($name, $value, $fields, $fieldsInfo);
			if($r->isSuccess())
			{
				$value = $r->getData()[0];
			}
		}
	}

	if($r->isSuccess())
	{
		$r->setData([$value]);
	}

	return $r;
}