Test Failed
Push — master ( 5f574e...cd391d )
by Pavel
01:40
created

FractalResponse::index()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 7
nc 1
nop 2
dl 0
loc 10
ccs 8
cts 8
cp 1
crap 1
rs 9.4285
c 0
b 0
f 0
1
<?php namespace Pz\Doctrine\Rest\Response;
2
3
use Doctrine\ORM\QueryBuilder;
4
use Doctrine\ORM\Tools\Pagination\Paginator;
5
6
use League\Fractal\Manager;
7
use League\Fractal\Resource\Collection;
8
use League\Fractal\Resource\Item;
9
use League\Fractal\TransformerAbstract;
10
11
use Pz\Doctrine\Rest\Action\Index\ResponseDataInterface;
12
use Pz\Doctrine\Rest\Request\CreateRequestInterface;
13
use Pz\Doctrine\Rest\Request\DeleteRequestInterface;
14
use Pz\Doctrine\Rest\Request\IndexRequestInterface;
15
use Pz\Doctrine\Rest\Request\ShowRequestInterface;
16
use Pz\Doctrine\Rest\Request\UpdateRequestInterface;
17
use Pz\Doctrine\Rest\RestRequestInterface;
18
use Pz\Doctrine\Rest\RestResponseInterface;
19
20
class FractalResponse implements RestResponseInterface
21
{
22
    /**
23
     * @var TransformerAbstract
24
     */
25
    protected $transformer;
26
27
    /**
28
     * @var Manager|null
29
     */
30
    protected $fractal;
31
32
    /**
33
     * FractalResponse constructor.
34
     *
35
     * @param TransformerAbstract $transformer
36
     */
37 1
    public function __construct(TransformerAbstract $transformer)
38
    {
39 1
        $this->transformer = $transformer;
40 1
    }
41
42
    /**
43
     * Return configured fractal by request format.
44
     *
45
     * @param RestRequestInterface $request
46
     *
47
     * @return Manager
48
     */
49 1
    protected function fractal(RestRequestInterface $request)
0 ignored issues
show
Unused Code introduced by
The parameter $request is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

49
    protected function fractal(/** @scrutinizer ignore-unused */ RestRequestInterface $request)

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
50
    {
51 1
        if ($this->fractal === null) {
52 1
            $this->fractal = new Manager();
53
        }
54
55 1
        return $this->fractal;
56
    }
57
58
    /**
59
     * @return TransformerAbstract
60
     */
61 1
    protected function transformer()
62
    {
63 1
        return $this->transformer;
64
    }
65
66
    /**
67
     * @param IndexRequestInterface $request
68
     * @param ResponseDataInterface $response
69
     *
70
     * @return array
71
     */
72 1
    public function index(IndexRequestInterface $request, ResponseDataInterface $response)
73
    {
74 1
        $resource = new Collection($response->data(), $this->transformer());
75 1
        $resource->setMetaValue('count', $response->count());
76 1
        $resource->setMetaValue('limit', $response->limit());
77 1
        $resource->setMetaValue('start', $response->start());
78
79 1
        return $this->fractal($request)
80 1
            ->createData($resource)
81 1
            ->toArray();
82
    }
83
84
    /**
85
     * @param ShowRequestInterface $request
86
     * @param             $entity
87
     *
88
     * @return array
89
     */
90
    public function show(ShowRequestInterface $request, $entity)
91
    {
92
        $resource = new Item($entity, $this->transformer());
93
94
        return $this->fractal($request)
95
            ->createData($resource)
96
            ->toArray();
97
    }
98
99
    /**
100
     * @param CreateRequestInterface $request
101
     * @param               $entity
102
     *
103
     * @return array
104
     */
105
    public function create(CreateRequestInterface $request, $entity)
106
    {
107
        $resource = new Item($entity, $this->transformer());
108
109
        return $this->fractal($request)
110
            ->createData($resource)
111
            ->toArray();
112
    }
113
114
    /**
115
     * @param UpdateRequestInterface $request
116
     * @param               $entity
117
     *
118
     * @return array
119
     */
120
    public function update(UpdateRequestInterface $request, $entity)
121
    {
122
        $resource = new Item($entity, $this->transformer());
123
124
        return $this->fractal($request)
125
            ->createData($resource)
126
            ->toArray();
127
    }
128
129
    /**
130
     * @param DeleteRequestInterface $request
131
     * @param               $entity
132
     *
133
     * @return array
134
     */
135
    public function delete(DeleteRequestInterface $request, $entity)
136
    {
137
        return null;
138
    }
139
}
140