Total Complexity | 5 |
Total Lines | 37 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | <?php |
||
10 | class BuildSelectQueryStep extends AbstractStep |
||
11 | { |
||
12 | /** |
||
13 | * @var AccessManager |
||
14 | */ |
||
15 | private $accessManager; |
||
16 | |||
17 | public function __construct(AccessManager $accessManager) |
||
18 | { |
||
19 | $this->accessManager = $accessManager; |
||
20 | } |
||
21 | |||
22 | public function execute() |
||
23 | { |
||
24 | /** @var \ReflectionClass $reflection */ |
||
25 | $reflection = $this->getFromResponse('reflection'); |
||
26 | /** @var QueryBuilder $queryBuilder */ |
||
27 | $queryBuilder = $this->getFromResponse('query_builder'); |
||
28 | $queryBuilder->from($reflection->getName(), 'e'); |
||
29 | |||
30 | foreach ($reflection->getProperties() as $property) { |
||
31 | if ($this->accessManager->canAccessProperty($property)) { |
||
32 | $queryBuilder |
||
33 | ->addSelect('e.'.$property->getName()); |
||
34 | } |
||
35 | } |
||
36 | |||
37 | return $this->createResponse(['query_builder' => $queryBuilder]); |
||
38 | } |
||
39 | |||
40 | |||
41 | public function requiresBefore() |
||
47 | ]; |
||
48 | } |
||
49 | } |