/** * {@inheritdoc} */ protected function data(ServerRequestInterface $request, Document $document) { $actor = $request->getAttribute('actor'); $query = array_get($this->extractFilter($request), 'q'); $sort = $this->extractSort($request); $criteria = new SearchCriteria($actor, $query, $sort); $limit = $this->extractLimit($request); $offset = $this->extractOffset($request); $load = array_merge($this->extractInclude($request), ['state']); $results = $this->searcher->search($criteria, $limit, $offset, $load); $document->addPaginationLinks($this->url->toRoute('discussions.index'), $request->getQueryParams(), $offset, $limit, $results->areMoreResults() ? null : 0); return $results->getResults(); }