Completed
Pull Request — master (#1)
by Woody
27:07 queued 01:07
created

RedirectResponder::hasRedirect()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1
Metric Value
dl 0
loc 5
ccs 3
cts 3
cp 1
rs 9.4286
cc 1
eloc 3
nc 1
nop 1
crap 1
1
<?php
2
3
namespace Equip\Responder;
4
5
use Psr\Http\Message\ServerRequestInterface;
6
use Psr\Http\Message\ResponseInterface;
7
use Equip\Adr\PayloadInterface;
8
use Equip\Adr\ResponderInterface;
9
10
class RedirectResponder implements ResponderInterface
11
{
12
    /**
13
     * @inheritDoc
14
     */
15 5
    public function __invoke(
16
        ServerRequestInterface $request,
17
        ResponseInterface $response,
18
        PayloadInterface $payload
19
    ) {
20 5
        if ($this->hasRedirect($payload)) {
21 1
            $messages = $payload->getMessages() + [
22 1
                'status' => 302,
23
            ];
24
25
            return $response
26 1
                ->withStatus($messages['status'])
27 1
                ->withHeader('Location', $messages['redirect']);
28
        }
29
30 4
        return $response;
31
    }
32
33
    /**
34
     * Check if the payload contains a redirect
35
     *
36
     * @param PayloadInterface $payload
37
     *
38
     * @return boolean
39
     */
40 5
    private function hasRedirect(PayloadInterface $payload)
41
    {
42 5
        $messages = $payload->getMessages();
43 5
        return !empty($messages['redirect']);
44
    }
45
}
46