Completed
Push — master ( d67d98...b398a1 )
by David
06:02
created

AddReportToHeader::handle()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 3.0416

Importance

Changes 0
Metric Value
dl 0
loc 10
ccs 5
cts 6
cp 0.8333
rs 9.9332
c 0
b 0
f 0
cc 3
nc 2
nop 2
crap 3.0416
1
<?php
2
3
namespace DevDavido\Reporto\Middleware;
4
5
use Closure;
6
use Illuminate\Http\Request;
7
use Illuminate\Http\Response;
8
use DevDavido\Reporto\LogGroups;
9
10
class AddReportToHeader
11
{
12
    const REPORT_TO = 'Report-To';
13
14
    /**
15
     * All response log groups.
16
     *
17
     * @var LogGroups
18
     */
19
    private $logGroups;
20
21
    /**
22
     * Set log groups.
23
     *
24
     * @param LogGroups $groups
25
     */
26 3
    public function __construct(LogGroups $groups)
27
    {
28 3
        $this->logGroups = $groups;
29 3
    }
30
31
    /**
32
     * Adds Report-To header to response.
33
     *
34
     * @param Request $request
35
     * @param Closure $next
36
     * @return mixed|Response
37
     */
38 3
    public function handle(Request $request, Closure $next)
39
    {
40 3
        $response = $next($request);
41 3
        if (!$response instanceof Response || $response->headers->has(self::REPORT_TO)) {
42
            return $response;
43
        }
44 3
        $response->headers->set(self::REPORT_TO, (string) $this->logGroups);
45
46 3
        return $response;
47
    }
48
}