SetCacheHeaders   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 9
dl 0
loc 22
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A handle() 0 15 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Minepic\Http\Middleware;
6
7
use Illuminate\Http\Request;
8
use Symfony\Component\HttpFoundation\Response;
9
10
class SetCacheHeaders
11
{
12
    /**
13
     * Add cache related HTTP headers.
14
     *
15
     * @throws \InvalidArgumentException
16
     */
17
    public function handle(Request $request, \Closure $next): Response
18
    {
19
        /** @var \Symfony\Component\HttpFoundation\Response $response */
20
        $response = $next($request);
21
22
        if (!$request->isMethodCacheable() || !$response->getContent()) {
23
            return $response;
24
        }
25
26
        $response->setEtag(md5($response->getContent()), false);
27
        $response->setPublic();
28
        $response->setMaxAge((int) env('USERDATA_CACHE_TIME'));
29
        $response->isNotModified($request);
30
31
        return $response;
32
    }
33
}
34