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 ); return $queryResults->getResults(); } }