Skip to content

Commit b60f3b1

Browse files
committed
Implemented #504
1 parent e4c4048 commit b60f3b1

File tree

1 file changed

+14
-35
lines changed

1 file changed

+14
-35
lines changed

src/Tqdev/PhpCrudApi/Middleware/PageLimitsMiddleware.php

Lines changed: 14 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
namespace Tqdev\PhpCrudApi\Middleware;
33

44
use Tqdev\PhpCrudApi\Column\ReflectionService;
5-
use Tqdev\PhpCrudApi\Column\Reflection\ReflectedTable;
65
use Tqdev\PhpCrudApi\Controller\Responder;
76
use Tqdev\PhpCrudApi\Middleware\Base\Middleware;
87
use Tqdev\PhpCrudApi\Middleware\Router\Router;
@@ -21,47 +20,27 @@ public function __construct(Router $router, Responder $responder, array $propert
2120
$this->utils = new RequestUtils($reflection);
2221
}
2322

24-
private function getMissingOrderParam(ReflectedTable $table): String
25-
{
26-
$pk = $table->getPk();
27-
if (!$pk) {
28-
$columnNames = $table->getColumnNames();
29-
if (!$columnNames) {
30-
return '';
31-
}
32-
return $columnNames[0];
33-
}
34-
return $pk->getName();
35-
}
36-
3723
public function handle(Request $request): Response
3824
{
3925
$operation = $this->utils->getOperation($request);
4026
if ($operation == 'list') {
41-
$tableName = $request->getPathSegment(2);
42-
$table = $this->reflection->getTable($tableName);
43-
if ($table) {
44-
$params = $request->getParams();
45-
if (!isset($params['order']) || !$params['order']) {
46-
$params['order'] = array($this->getMissingOrderParam($table));
47-
}
48-
$maxPage = (int) $this->getProperty('pages', '100');
49-
if (isset($params['page']) && $params['page']) {
50-
if (strpos($params['page'][0], ',') === false) {
51-
$params['page'] = array(min($params['page'][0], $maxPage));
52-
} else {
53-
list($page, $size) = explode(',', $params['page'][0], 2);
54-
$params['page'] = array(min($page, $maxPage) . ',' . $size);
55-
}
56-
}
57-
$maxSize = (int) $this->getProperty('records', '1000');
58-
if (!isset($params['size']) || !$params['size']) {
59-
$params['size'] = array($maxSize);
27+
$params = $request->getParams();
28+
$maxPage = (int) $this->getProperty('pages', '100');
29+
if (isset($params['page']) && $params['page']) {
30+
if (strpos($params['page'][0], ',') === false) {
31+
$params['page'] = array(min($params['page'][0], $maxPage));
6032
} else {
61-
$params['size'] = array(min($params['size'][0], $maxSize));
33+
list($page, $size) = explode(',', $params['page'][0], 2);
34+
$params['page'] = array(min($page, $maxPage) . ',' . $size);
6235
}
63-
$request->setParams($params);
6436
}
37+
$maxSize = (int) $this->getProperty('records', '1000');
38+
if (!isset($params['size']) || !$params['size']) {
39+
$params['size'] = array($maxSize);
40+
} else {
41+
$params['size'] = array(min($params['size'][0], $maxSize));
42+
}
43+
$request->setParams($params);
6544
}
6645
return $this->next->handle($request);
6746
}

0 commit comments

Comments
 (0)