Skip to content

Commit aa436e5

Browse files
committed
ignore offset if limit is not set, default offset to 0, fix style according psr-12
1 parent fdf204b commit aa436e5

File tree

3 files changed

+3
-40
lines changed

3 files changed

+3
-40
lines changed

src/Exception/InvalidPaginatorRequestException.php

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/RequestParser.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
use Illuminate\Http\Request;
99
use Illuminate\Support\Facades\Config;
1010
use Laravel\Lumen\Routing\Controller;
11-
use LIQRGV\QueryFilter\Exception\InvalidPaginatorRequestException;
1211
use LIQRGV\QueryFilter\Exception\ModelNotFoundException;
1312
use LIQRGV\QueryFilter\Exception\NotModelException;
1413
use LIQRGV\QueryFilter\Struct\FilterStruct;
@@ -68,7 +67,7 @@ private function createModelBuilderStruct(Request $request): ModelBuilderStruct
6867
$filterQuery = $queryParam->get('filter') ?? [];
6968
$sortQuery = $queryParam->get('sort') ?? null;
7069
$limitQuery = $queryParam->get('limit') ?? null;
71-
$offsetQuery = $queryParam->get('offset') ?? null;
70+
$offsetQuery = $queryParam->get('offset') ?? 0;
7271

7372
$baseModelName = $this->getBaseModelName($request);
7473
$filters = $this->parseFilter($filterQuery);
@@ -162,9 +161,6 @@ private function parseSorter(?string $sortQuery): ?array
162161
}
163162

164163
private function parsePaginator($limitQuery, $offsetQuery){
165-
if ($limitQuery xor $offsetQuery){
166-
throw new InvalidPaginatorRequestException();
167-
}
168164
return [
169165
"limit" => $limitQuery,
170166
"offset" => $offsetQuery
@@ -210,8 +206,9 @@ private function applySorter(Builder $builder, array $sorter)
210206

211207
private function applyPaginator(Builder $builder, array $paginator): Builder
212208
{
213-
if ($paginator['limit'])
209+
if ($paginator['limit']){
214210
return $builder->limit($paginator['limit'])->offset($paginator['offset']);
211+
}
215212
return $builder;
216213
}
217214

tests/RequestParserTest.php

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
use Illuminate\Http\Request;
66
use Illuminate\Routing\Route;
77
use Illuminate\Support\Facades\Config;
8-
use LIQRGV\QueryFilter\Exception\InvalidPaginatorRequestException;
98
use LIQRGV\QueryFilter\Exception\ModelNotFoundException;
109
use LIQRGV\QueryFilter\Exception\NotModelException;
1110
use LIQRGV\QueryFilter\Mocks\MockModelController;
@@ -430,23 +429,4 @@ function testPagination()
430429
$this->assertEquals(100, $query->limit);
431430
$this->assertEquals(50, $query->offset);
432431
}
433-
434-
function testInvalidPaginatorRequest()
435-
{
436-
$this->expectException(InvalidPaginatorRequestException::class);
437-
$uri = 'some_model';
438-
$controllerClass = MockModelController::class;
439-
$query = new ParameterBag([
440-
"offset" => "50"
441-
]);
442-
$requestParserOptions = [
443-
'model_namespaces' => [
444-
'LIQRGV\QueryFilter\Mocks',
445-
]
446-
];
447-
448-
$request = $this->createControllerRequest($uri, $controllerClass, $query, $requestParserOptions);
449-
$requestParser = new RequestParser($request);
450-
$requestParser->getBuilder();
451-
}
452432
}

0 commit comments

Comments
 (0)