filterer = $filterer; $this->url = $url; } /** * {@inheritdoc} */ protected function data(ServerRequestInterface $request, Document $document) { $actor = RequestUtil::getActor($request); $filters = $this->extractFilter($request); $sort = $this->extractSort($request); $sortIsDefault = $this->sortIsDefault($request); $limit = $this->extractLimit($request); $offset = $this->extractOffset($request); $criteria = new QueryCriteria($actor, $filters, $sort, $sortIsDefault); $queryResults = $this->filterer->filter($criteria, $limit, $offset); $document->addPaginationLinks( $this->url->to('api')->route('groups.index'), $request->getQueryParams(), $offset, $limit, $queryResults->areMoreResults() ? null : 0 ); $results = $queryResults->getResults(); $this->loadRelations($results, [], $request); return $results; } }