• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/integration/rest/userfield.php
  • Класс: BitrixTasksIntegrationRestUserField
  • Вызов: UserField::postProcessValues
static function postProcessValues($values, $parameters = array())
{
	if(!is_array($parameters))
		$parameters = array();

	if(!isset($parameters['FIELDS']))
	{
		$parameters['FIELDS'] = array();

		$res = static::getFieldList();
		while($item = $res->fetch())
		{
			$parameters['FIELDS'][$item['FIELD_NAME']] = $item;
		}
	}

	if(!isset($parameters['SERVER']) || !($parameters['SERVER'] instanceof CRestServer))
	{
		throw new BitrixMainArgumentException('Argument $parameters[SERVER] should be a valid CRestServer instance');
	}

	foreach($parameters['FIELDS'] as $fieldName => $fieldData)
	{
		if(isset($values[$fieldData['FIELD_NAME']]))
		{
			$value = $values[$fieldData['FIELD_NAME']];

			if((is_array($value) && empty($value)) || ((string) $value == ''))
			{
				continue;
			}

			if($fieldData['MULTIPLE'] == 'N')
			{
				$value = array($value);
			}

			// only disk files will be converted
			if($fieldData['USER_TYPE_ID'] == 'disk_file')
			{
				foreach($value as $i => $attachmentId)
				{
					$value[$i] = Attachment::getById($attachmentId, array('SERVER' => $parameters['SERVER']));
				}
			}

			$values[$fieldData['FIELD_NAME']] = $fieldData['MULTIPLE'] == 'N' ? $value[0] : $value;
		}
	}

	return $values;
}