public function cgetAction(Request $request)
{
try {
/** @var ListRestHelperInterface $listRestHelper */
$listRestHelper = $this->get('sulu_core.list_rest_helper');
$securityChecker = $this->get('sulu_security.security_checker');
$flat = $this->getBooleanRequestParameter($request, 'flat', false);
$depth = $request->get('depth', 0);
$limit = $request->get('limit', null);
$offset = $this->getOffset($request, $limit);
$search = $listRestHelper->getSearchPattern();
$sortBy = $request->get('sortBy');
$sortOrder = $request->get('sortOrder', 'ASC');
$collectionManager = $this->getCollectionManager();
if ($flat) {
$collections = $collectionManager->get($this->getRequestParameter($request, 'locale', true), ['depth' => $depth], $limit, $offset, $sortBy !== null ? [$sortBy => $sortOrder] : []);
} else {
$collections = $collectionManager->getTree($this->getRequestParameter($request, 'locale', true), $offset, $limit, $search, $depth, $sortBy !== null ? [$sortBy => $sortOrder] : [], $securityChecker->hasPermission('sulu.media.system_collections', 'view'));
}
if ($this->getBooleanRequestParameter($request, 'include-root', false, false)) {
$collections = [new RootCollection($collections)];
}
$all = $collectionManager->getCount();
$list = new ListRepresentation($collections, self::$entityKey, 'get_collections', $request->query->all(), $listRestHelper->getPage(), $listRestHelper->getLimit(), $all);
$view = $this->view($list, 200);
} catch (CollectionNotFoundException $cnf) {
$view = $this->view($cnf->toArray(), 404);
} catch (MediaException $me) {
$view = $this->view($me->toArray(), 400);
}
return $this->handleView($view);
}