Completed
Push — master ( 3c6dfc...645c70 )
by Iakov
03:16
created

BuildSelectQueryStep::addJoinIfRelation()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 4.944

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 6
ccs 2
cts 5
cp 0.4
rs 10
c 0
b 0
f 0
cc 3
nc 2
nop 2
crap 4.944
1
<?php
2
3
namespace Kami\ApiCoreBundle\RequestProcessor\Step\Common;
4
5
6
use Doctrine\Common\Annotations\Reader;
7
use Doctrine\Common\Inflector\Inflector;
8
use Doctrine\ORM\QueryBuilder;
9
use Kami\ApiCoreBundle\Annotation\Relation;
10
use Kami\Component\RequestProcessor\Artifact;
11
use Kami\Component\RequestProcessor\ArtifactCollection;
12
use Kami\Component\RequestProcessor\Step\AbstractStep;
13
use Kami\ApiCoreBundle\Security\AccessManager;
14
use Symfony\Component\HttpFoundation\Request;
15
16
class BuildSelectQueryStep extends AbstractStep
17
{
18
    /**
19
     * @var AccessManager
20
     */
21
    protected $accessManager;
22
23
    /**
24
     * @var Reader
25
     */
26
    protected $reader;
27
28
29 3
    public function __construct(AccessManager $accessManager, Reader $reader)
30
    {
31 3
        $this->accessManager = $accessManager;
32 3
        $this->reader = $reader;
33 3
    }
34
35 1
    public function execute(Request $request) : ArtifactCollection
36
    {
37
        /** @var \ReflectionClass $reflection */
38 1
        $reflection = $this->getArtifact('reflection');
39
        /** @var QueryBuilder $queryBuilder */
40 1
        $queryBuilder = $this->getArtifact('query_builder');
41 1
        $queryBuilder->from($reflection->getName(), 'e');
42 1
        $queryBuilder->addSelect('e');
43
44 1
        return new ArtifactCollection([
45 1
            new Artifact('select_query_built', true)
46
        ]);
47
    }
48
49
50 1
    public function getRequiredArtifacts() : array
51
    {
52 1
        return ['reflection', 'query_builder', 'access_granted'];
53
    }
54
}