Completed
Push — master ( cd391d...67f3cd )
by Pavel
01:53
created

FractalResponse::notFound()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
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 8
    public function __construct(TransformerAbstract $transformer)
38
    {
39 8
        $this->transformer = $transformer;
40 8
    }
41
42
    /**
43
     * Return configured fractal by request format.
44
     *
45
     * @param RestRequestInterface $request
46
     *
47
     * @return Manager
48
     */
49 4
    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 4
        if ($this->fractal === null) {
52 4
            $this->fractal = new Manager();
53
        }
54
55 4
        return $this->fractal;
56
    }
57
58
    /**
59
     * @return TransformerAbstract
60
     */
61 4
    protected function transformer()
62
    {
63 4
        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 1
    public function show(ShowRequestInterface $request, $entity)
91
    {
92 1
        $resource = new Item($entity, $this->transformer());
93
94 1
        return $this->fractal($request)
95 1
            ->createData($resource)
96 1
            ->toArray();
97
    }
98
99
    /**
100
     * @param CreateRequestInterface $request
101
     * @param               $entity
102
     *
103
     * @return array
104
     */
105 1
    public function create(CreateRequestInterface $request, $entity)
106
    {
107 1
        $resource = new Item($entity, $this->transformer());
108
109 1
        return $this->fractal($request)
110 1
            ->createData($resource)
111 1
            ->toArray();
112
    }
113
114
    /**
115
     * @param UpdateRequestInterface $request
116
     * @param               $entity
117
     *
118
     * @return array
119
     */
120 1
    public function update(UpdateRequestInterface $request, $entity)
121
    {
122 1
        $resource = new Item($entity, $this->transformer());
123
124 1
        return $this->fractal($request)
125 1
            ->createData($resource)
126 1
            ->toArray();
127
    }
128
129
    /**
130
     * @param DeleteRequestInterface $request
131
     * @param               $entity
132
     *
133
     * @return null
134
     */
135 1
    public function delete(DeleteRequestInterface $request, $entity)
136
    {
137 1
        return null;
138
    }
139
140
    /**
141
     * @param RestRequestInterface $request
142
     *
143
     * @return null
144
     */
145 3
    public function notFound(RestRequestInterface $request)
146
    {
147 3
        return null;
148
    }
149
}
150