2
2
namespace Tqdev \PhpCrudApi \Middleware ;
3
3
4
4
use Tqdev \PhpCrudApi \Column \ReflectionService ;
5
- use Tqdev \PhpCrudApi \Column \Reflection \ReflectedTable ;
6
5
use Tqdev \PhpCrudApi \Controller \Responder ;
7
6
use Tqdev \PhpCrudApi \Middleware \Base \Middleware ;
8
7
use Tqdev \PhpCrudApi \Middleware \Router \Router ;
@@ -21,47 +20,27 @@ public function __construct(Router $router, Responder $responder, array $propert
21
20
$ this ->utils = new RequestUtils ($ reflection );
22
21
}
23
22
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
-
37
23
public function handle (Request $ request ): Response
38
24
{
39
25
$ operation = $ this ->utils ->getOperation ($ request );
40
26
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 ));
60
32
} 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 );
62
35
}
63
- $ request ->setParams ($ params );
64
36
}
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 );
65
44
}
66
45
return $ this ->next ->handle ($ request );
67
46
}
0 commit comments