| @@ 91-104 (lines=14) @@ | ||
| 88 | * |
|
| 89 | * @return SearchRequest |
|
| 90 | */ |
|
| 91 | public function buildSearchRequest(Request $request) |
|
| 92 | { |
|
| 93 | $search = new SearchRequest(); |
|
| 94 | /** @var FilterInterface[] $filters */ |
|
| 95 | $filters = $this->all(); |
|
| 96 | ||
| 97 | foreach ($filters as $name => $filter) { |
|
| 98 | $state = $filter->getState($request); |
|
| 99 | $state->setName($name); |
|
| 100 | $search->set($name, $state); |
|
| 101 | } |
|
| 102 | ||
| 103 | return $search; |
|
| 104 | } |
|
| 105 | ||
| 106 | /** |
|
| 107 | * Builds elastic search query by given SearchRequest and filters. |
|
| @@ 114-125 (lines=12) @@ | ||
| 111 | * |
|
| 112 | * @return Search |
|
| 113 | */ |
|
| 114 | public function buildSearch(SearchRequest $request, $filters = null) |
|
| 115 | { |
|
| 116 | $search = new Search(); |
|
| 117 | ||
| 118 | /** @var FilterInterface[] $filters */ |
|
| 119 | $filters = $filters ? $filters : $this->all(); |
|
| 120 | foreach ($filters as $name => $filter) { |
|
| 121 | $filter->modifySearch($search, $request->get($name), $request); |
|
| 122 | } |
|
| 123 | ||
| 124 | return $search; |
|
| 125 | } |
|
| 126 | } |
|
| 127 | ||