/**
  * Data provider for testIteration.
  *
  * @return array
  */
 public function getIterationData()
 {
     $out = [];
     // Case #0: no search type set, with a sort, results should be sorted.
     $search = new Search();
     $search->setSize(2);
     $search->setScroll('1m');
     $search->addSort(new Sort('header'));
     $search->addQuery(new MatchAllQuery());
     $out[] = ['search' => $search, true];
     // Case #1: search type set to scan, with a sort, results should not be sorted.
     $search = new Search();
     $search->setSize(2);
     $search->setScroll('1m');
     $search->setSearchType('scan');
     $search->addSort(new Sort('header'));
     $search->addQuery(new MatchAllQuery());
     $out[] = ['search' => $search, false];
     // Case #3: minimum size, should give the same results.
     $search = new Search();
     $search->setSize(1);
     $search->setScroll('1m');
     $search->addSort(new Sort('header'));
     $search->addQuery(new MatchAllQuery());
     $out[] = ['search' => $search, true];
     return $out;
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function getAction(RestRequest $restRequest, $id = null)
 {
     if ($id !== null) {
         $data = $restRequest->getRepository()->find($id, Repository::RESULTS_ARRAY);
         if ($data === null) {
             return $this->renderRest(null, Response::HTTP_NOT_FOUND);
         }
     } else {
         $search = new Search();
         !$restRequest->query->has('from') ?: $search->setFrom($restRequest->query->get('from'));
         !$restRequest->query->has('size') ?: $search->setSize($restRequest->query->get('size'));
         $data = $restRequest->getRepository()->execute($search, Repository::RESULTS_ARRAY);
     }
     return $this->renderRest($data);
 }
Ejemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function modifySearch(Search $search, FilterState $state = null, SearchRequest $request = null)
 {
     if ($state && $state->isActive()) {
         $search->setFrom($this->countPerPage * ($state->getValue() - 1));
     }
     $search->setSize($this->countPerPage);
 }