| @@ 255-274 (lines=20) @@ | ||
| 252 | ; |
|
| 253 | } |
|
| 254 | ||
| 255 | private function buildResultForTooLargeOffset(AnalysedQuery $analysedQuery): Result |
|
| 256 | { |
|
| 257 | $result = (new Result())->setHasNext(false); |
|
| 258 | ||
| 259 | $pagerForLastElement = (new Pager())->setLimit(1); |
|
| 260 | $modifiedAnalysedQuery = (clone $analysedQuery)->setOrderingConfigurations( |
|
| 261 | $this->reverseOrderingDirection($analysedQuery->getOrderingConfigurations()) |
|
| 262 | ); |
|
| 263 | $items = $this->findItems($modifiedAnalysedQuery, $pagerForLastElement); |
|
| 264 | if (count($items) === 0) { |
|
| 265 | return $result->setHasPrevious(false); |
|
| 266 | } |
|
| 267 | ||
| 268 | $lastItemCursor = $this->cursorBuilder->getCursorFromItem($items[0], $modifiedAnalysedQuery->getOrderingConfigurations()); |
|
| 269 | return $result |
|
| 270 | ->setHasPrevious(true) |
|
| 271 | ->setPreviousCursor($this->cursorBuilder->buildCursorWithIncludedItem($lastItemCursor)) |
|
| 272 | ->setNextCursor($lastItemCursor) |
|
| 273 | ; |
|
| 274 | } |
|
| 275 | ||
| 276 | /** |
|
| 277 | * @param array|OrderingConfiguration[] $orderingConfigurations |
|
| @@ 256-275 (lines=20) @@ | ||
| 253 | ; |
|
| 254 | } |
|
| 255 | ||
| 256 | private function buildResultForTooLargeOffset(AnalysedQuery $analysedQuery): Result |
|
| 257 | { |
|
| 258 | $result = (new Result())->setHasNext(false); |
|
| 259 | ||
| 260 | $pagerForLastElement = (new Pager())->setLimit(1); |
|
| 261 | $modifiedAnalysedQuery = (clone $analysedQuery)->setOrderingConfigurations( |
|
| 262 | $this->reverseOrderingDirection($analysedQuery->getOrderingConfigurations()) |
|
| 263 | ); |
|
| 264 | $items = $this->findItems($modifiedAnalysedQuery, $pagerForLastElement); |
|
| 265 | if (count($items) === 0) { |
|
| 266 | return $result->setHasPrevious(false); |
|
| 267 | } |
|
| 268 | ||
| 269 | $lastItemCursor = $this->cursorBuilder->getCursorFromItem($items[0], $modifiedAnalysedQuery->getOrderingConfigurations()); |
|
| 270 | return $result |
|
| 271 | ->setHasPrevious(true) |
|
| 272 | ->setPreviousCursor($this->cursorBuilder->buildCursorWithIncludedItem($lastItemCursor)) |
|
| 273 | ->setNextCursor($lastItemCursor) |
|
| 274 | ; |
|
| 275 | } |
|
| 276 | ||
| 277 | /** |
|
| 278 | * @param array|OrderingConfiguration[] $orderingConfigurations |
|