• Модуль: rpa
  • Путь к файлу: ~/bitrix/modules/rpa/lib/controller/item.php
  • Класс: BitrixRpaControllerItem
  • Вызов: Item::listAction
public function listAction(
	BitrixRpaModelType $type,
	array $order = null,
	array $filter = null,
	PageNavigation $pageNavigation = null
): ?Page
{
	if(!Driver::getInstance()->getUserPermissions()->canViewType($type->getId()))
	{
		$this->addError(new Error(Loc::getMessage('RPA_COMMON_TYPE_VIEW_ACCESS_DENIED')));
		return null;
	}
	$parameters = [];
	$parameters['filter'] = $this->removeDotsFromKeys($this->prepareFilter($type, $filter));
	$converter = new Converter(Converter::TO_UPPER | Converter::KEYS | Converter::TO_SNAKE);
	if(is_array($order))
	{
		$parameters['order'] = $converter->process($order);
	}
	$parameters['select'] = ['*'];

	if($pageNavigation)
	{
		$parameters['offset'] = $pageNavigation->getOffset();
		$parameters['limit'] = $pageNavigation->getLimit();
	}

	$result = [];
	$items = $type->getItems($parameters);
	foreach($items as $item)
	{
		$result[] = $this->prepareItemData($item, [
			'withDisplay' => false,
			'withTasks' => false,
			'withUsers' => false,
			'withPermissions' => false,
		]);
	}

	return new Page('items', $result, static function() use ($parameters, $type)
	{
		return $type->getItemsCount($parameters['filter']);
	});
}