Test Failed
Pull Request — master (#28)
by Roman
05:37
created

TrimResponseStep::execute()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 15
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 3

Importance

Changes 0
Metric Value
cc 3
eloc 7
nc 3
nop 0
dl 0
loc 15
ccs 8
cts 8
cp 1
crap 3
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
4
namespace Kami\ApiCoreBundle\RequestProcessor\Step\Common;
5
6
7
use Kami\ApiCoreBundle\RequestProcessor\Step\AbstractStep;
8
use Kami\ApiCoreBundle\Security\AccessManager;
9
use Doctrine\Common\Util\Inflector;
10
11
class TrimResponseStep extends AbstractStep
12
{
13
    protected $accessManager;
14
15
    public function __construct(AccessManager $accessManager)
16
    {
17
        $this->accessManager = $accessManager;
18
    }
19
20
    public function execute()
21
    {
22
        /** @var \ReflectionClass $reflection */
23
        $reflection = $this->getFromResponse('reflection');
24
        $persistedEntity = $this->getFromResponse('response_data');
25
26
        $data = [];
27
28
        foreach ($reflection->getProperties() as $property) {
29
            if ($this->accessManager->canAccessProperty($property)) {
30
                $data[Inflector::tableize($property->getName()] = call_user_func([$persistedEntity, 'get'.ucfirst($property->getName())]);
0 ignored issues
show
Bug introduced by
A parse error occurred: Syntax error, unexpected ']', expecting ',' or ')' on line 30 at column 62
Loading history...
31
            }
32
        }
33
34
        return $this->createResponse(['response_data' => $data]);
35
    }
36
37
    public function requiresBefore()
38
    {
39
        return [PersistStep::class];
40
    }
41
}