ResponseModifier::modifyResponse()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 8
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 4
nc 2
nop 2
1
<?php
2
3
declare (strict_types=1);
4
5
namespace Oxidmod\RestBundle\Response;
6
7
use Oxidmod\RestBundle\Response\Modifier\ResponseModifierInterface;
8
use Symfony\Component\HttpFoundation\Request;
9
use Symfony\Component\HttpFoundation\Response;
10
11
/**
12
 * Root modifier for rendered response
13
 */
14
class ResponseModifier
15
{
16
    /**
17
     * @var ResponseModifierInterface[]
18
     */
19
    private $modifiers;
20
21
    /**
22
     * @param ResponseModifierInterface[] $modifiers
23
     */
24
    public function __construct(array $modifiers)
25
    {
26
        foreach ($modifiers as $modifier) {
27
            $this->addResponseModifier($modifier);
28
        }
29
    }
30
31
    private function addResponseModifier(ResponseModifierInterface $modifier)
32
    {
33
        $this->modifiers[] = $modifier;
34
    }
35
36
    /**
37
     * @param Response $response
38
     * @param Request $request
39
     *
40
     * @return Response
41
     */
42
    public function modifyResponse(Response $response, Request $request): Response
43
    {
44
        foreach ($this->modifiers as $modifier) {
45
            $response = $modifier->modify($response, $request);
46
        }
47
48
        return $response;
49
    }
50
}
51