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

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

	if($type === DataType::TYPE_FLOAT)
	{
		$value = floatval($value);
	}
	elseif($type === DataType::TYPE_INT)
	{
		$value = (int)$value;
	}
	elseif($type === DataType::TYPE_DATETIME)
	{
		$date = $this->internalizeDateTimeValue($value);

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

		if($date->isSuccess())
		{
			$value = $date->getData()[0];
		}
		else
		{
			$r->addErrors($date->getErrors());
		}
	}
	elseif($type === DataType::TYPE_FILE)
	{
		$value = $this->internalizeFileValue($value);
	}
	else
	{
		$r = $this->internalizeExtendedTypeValue($value, $info);
		if($r->isSuccess())
		{
			$value = $r->getData()[0];
		}
	}

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

	return $r;
}