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