• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/rest/controllers/task/result.php
  • Класс: BitrixTasksRestControllersTaskResult
  • Вызов: Result::listAction
public function listAction(int $taskId, array $params = [])
{
	if (!$taskId)
	{
		$this->errorCollection->add([new Error('Task not found.')]);
		return null;
	}

	$userId = $this->getUserId();
	if (!$userId)
	{
		$this->errorCollection->add([new Error('Access denied.')]);
		return null;
	}

	if (!Loader::includeModule('tasks'))
	{
		$this->errorCollection->add([new Error('Module not loaded.')]);
		return null;
	}

	if (!TaskAccessController::can($userId, ActionDictionary::ACTION_TASK_READ, $taskId))
	{
		$this->errorCollection->add([new Error('Access denied.')]);
		return null;
	}

	$list = [];
	$taskResults = (new ResultManager($userId))->getTaskResults($taskId);
	foreach ($taskResults as $result)
	{
		$data = $result->toArray();
		if (!is_array($data['files']))
		{
			$data['files'] = [];
		}
		$list[] = $data;
	}

	if (empty($list))
	{
		return [];
	}

	$params = [
		'WITH_USER_INFO' => (array_key_exists('WITH_USER_INFO', $params) && $params['WITH_USER_INFO'] === 'Y'),
		'WITH_PARSED_TEXT' => (array_key_exists('WITH_PARSED_TEXT', $params) && $params['WITH_PARSED_TEXT'] === 'Y'),
		'WITH_FILE_INFO' =>
			(array_key_exists('WITH_PARSED_TEXT', $params) && $params['WITH_PARSED_TEXT'] === 'Y')
			|| (array_key_exists('WITH_FILE_INFO', $params) && $params['WITH_FILE_INFO'] === 'Y')
		,
	];
	if ($params['WITH_USER_INFO'])
	{
		$list = $this->fillWithUserInfo($list);
	}
	if ($params['WITH_FILE_INFO'])
	{
		$list = $this->fillWithFileInfo($list);
	}
	if ($params['WITH_PARSED_TEXT'])
	{
		$list = $this->fillWithParsedText($list);
	}

	foreach ($list as $key => $result)
	{
		$list[$key]['fileInfo'] = $this->convertKeysToCamelCase($result['fileInfo']);
	}

	return $list;
}