| @@ 200-232 (lines=33) @@ | ||
| 197 | $queryBuilder->andWhere($whereClause); |
|
| 198 | } |
|
| 199 | ||
| 200 | private function buildResultForEmptyItems(AnalysedQuery $analysedQuery, Pager $pager): Result |
|
| 201 | { |
|
| 202 | if ($pager->getLimit() === 0) { |
|
| 203 | return $this->buildResultForZeroLimit($analysedQuery, $pager); |
|
| 204 | ||
| 205 | } elseif ($pager->getBefore() !== null) { |
|
| 206 | $nextCursor = $this->cursorBuilder->invertCursorInclusion($pager->getBefore()); |
|
| 207 | return (new Result()) |
|
| 208 | ->setPreviousCursor($pager->getBefore()) |
|
| 209 | ->setNextCursor($nextCursor) |
|
| 210 | ->setHasPrevious(false) |
|
| 211 | ->setHasNext($this->existsAfterCursor($nextCursor, $analysedQuery)) |
|
| 212 | ; |
|
| 213 | ||
| 214 | } elseif ($pager->getAfter() !== null) { |
|
| 215 | $previousCursor = $this->cursorBuilder->invertCursorInclusion($pager->getAfter()); |
|
| 216 | return (new Result()) |
|
| 217 | ->setPreviousCursor($previousCursor) |
|
| 218 | ->setNextCursor($pager->getAfter()) |
|
| 219 | ->setHasPrevious($this->existsBeforeCursor($previousCursor, $analysedQuery)) |
|
| 220 | ->setHasNext(false) |
|
| 221 | ; |
|
| 222 | ||
| 223 | } elseif ($pager->getOffset() !== null && $pager->getOffset() > 0) { |
|
| 224 | return $this->buildResultForTooLargeOffset($analysedQuery); |
|
| 225 | ||
| 226 | } |
|
| 227 | ||
| 228 | return (new Result()) |
|
| 229 | ->setHasPrevious(false) |
|
| 230 | ->setHasNext(false) |
|
| 231 | ; |
|
| 232 | } |
|
| 233 | ||
| 234 | private function buildResultForZeroLimit(AnalysedQuery $analysedQuery, Pager $zeroLimitPager): Result |
|
| 235 | { |
|
| @@ 201-233 (lines=33) @@ | ||
| 198 | $queryBuilder->addAnd($whereClause); |
|
| 199 | } |
|
| 200 | ||
| 201 | private function buildResultForEmptyItems(AnalysedQuery $analysedQuery, Pager $pager): Result |
|
| 202 | { |
|
| 203 | if ($pager->getLimit() === 0) { |
|
| 204 | return $this->buildResultForZeroLimit($analysedQuery, $pager); |
|
| 205 | ||
| 206 | } elseif ($pager->getBefore() !== null) { |
|
| 207 | $nextCursor = $this->cursorBuilder->invertCursorInclusion($pager->getBefore()); |
|
| 208 | return (new Result()) |
|
| 209 | ->setPreviousCursor($pager->getBefore()) |
|
| 210 | ->setNextCursor($nextCursor) |
|
| 211 | ->setHasPrevious(false) |
|
| 212 | ->setHasNext($this->existsAfterCursor($nextCursor, $analysedQuery)) |
|
| 213 | ; |
|
| 214 | ||
| 215 | } elseif ($pager->getAfter() !== null) { |
|
| 216 | $previousCursor = $this->cursorBuilder->invertCursorInclusion($pager->getAfter()); |
|
| 217 | return (new Result()) |
|
| 218 | ->setPreviousCursor($previousCursor) |
|
| 219 | ->setNextCursor($pager->getAfter()) |
|
| 220 | ->setHasPrevious($this->existsBeforeCursor($previousCursor, $analysedQuery)) |
|
| 221 | ->setHasNext(false) |
|
| 222 | ; |
|
| 223 | ||
| 224 | } elseif ($pager->getOffset() !== null && $pager->getOffset() > 0) { |
|
| 225 | return $this->buildResultForTooLargeOffset($analysedQuery); |
|
| 226 | ||
| 227 | } |
|
| 228 | ||
| 229 | return (new Result()) |
|
| 230 | ->setHasPrevious(false) |
|
| 231 | ->setHasNext(false) |
|
| 232 | ; |
|
| 233 | } |
|
| 234 | ||
| 235 | private function buildResultForZeroLimit(AnalysedQuery $analysedQuery, Pager $zeroLimitPager): Result |
|
| 236 | { |
|