Code Duplication    Length = 33-33 lines in 2 locations

src/Service/Doctrine/ResultProvider.php 1 location

@@ 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
    {

src/Service/ODM/ResultProvider.php 1 location

@@ 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
    {