CookieMiddleware::addCookie()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
ccs 0
cts 2
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Buzz\Middleware;
6
7
use Buzz\Middleware\Cookie\Cookie;
8
use Buzz\Middleware\Cookie\CookieJar;
9
use Psr\Http\Message\RequestInterface;
10
use Psr\Http\Message\ResponseInterface;
11
12
class CookieMiddleware implements MiddlewareInterface
13
{
14
    private $cookieJar;
15
16
    public function __construct()
17
    {
18
        $this->cookieJar = new CookieJar();
19
    }
20
21
    public function setCookies(array $cookies): void
22
    {
23
        $this->cookieJar->setCookies($cookies);
24
    }
25
26
    /**
27
     * @return Cookie[]
28
     */
29
    public function getCookies(): array
30
    {
31
        return $this->cookieJar->getCookies();
32
    }
33
34
    /**
35
     * Adds a cookie to the current cookie jar.
36
     *
37
     * @param Cookie $cookie A cookie object
38
     */
39
    public function addCookie(Cookie $cookie): void
40
    {
41
        $this->cookieJar->addCookie($cookie);
42
    }
43
44
    public function handleRequest(RequestInterface $request, callable $next)
45
    {
46
        $this->cookieJar->clearExpiredCookies();
47
        $request = $this->cookieJar->addCookieHeaders($request);
48
49
        return $next($request);
50
    }
51
52
    public function handleResponse(RequestInterface $request, ResponseInterface $response, callable $next)
53
    {
54
        $this->cookieJar->processSetCookieHeaders($request, $response);
55
56
        return $next($request, $response);
57
    }
58
}
59