Conditions | 7 |
Paths | 10 |
Total Lines | 30 |
Code Lines | 17 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | <?php |
||
23 | public function getResources(RequestConfiguration $requestConfiguration, RepositoryInterface $repository) |
||
24 | { |
||
25 | $method = $requestConfiguration->getRepositoryMethod(); |
||
26 | if (null !== $method) { |
||
27 | if (is_array($method) && 2 === count($method)) { |
||
28 | $repository = $method[0]; |
||
29 | $method = $method[1]; |
||
30 | } |
||
31 | |||
32 | $arguments = array_values($requestConfiguration->getRepositoryArguments()); |
||
33 | |||
34 | return $repository->$method(...$arguments); |
||
35 | } |
||
36 | |||
37 | $criteria = []; |
||
38 | if ($requestConfiguration->isFilterable()) { |
||
39 | $criteria = $requestConfiguration->getCriteria(); |
||
40 | } |
||
41 | |||
42 | $sorting = []; |
||
43 | if ($requestConfiguration->isSortable()) { |
||
44 | $sorting = $requestConfiguration->getSorting(); |
||
45 | } |
||
46 | |||
47 | if ($requestConfiguration->isPaginated()) { |
||
48 | return $repository->createPaginator($criteria, $sorting); |
||
49 | } |
||
50 | |||
51 | return $repository->findBy($criteria, $sorting, $requestConfiguration->getLimit()); |
||
52 | } |
||
53 | } |
||
54 |