- Модуль: 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;
}