RequestIdMiddleware::__invoke()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 21
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 21
c 0
b 0
f 0
rs 9.3142
cc 2
eloc 15
nc 2
nop 2
1
<?php
2
3
namespace Bunq\Middleware;
4
5
use GuzzleHttp\Psr7\Request;
6
use Psr\Http\Message\RequestInterface;
7
use Ramsey\Uuid\Uuid;
8
9
/**
10
 * @author Dennis de Greef (original author)
11
 * @author Mitchel Verschoof
12
 */
13
final class RequestIdMiddleware
14
{
15
    /**
16
     * @param RequestInterface $request
17
     * @param array            $options
18
     *
19
     * @return Request
20
     */
21
    public function __invoke(RequestInterface $request, array $options = [])
22
    {
23
        $requestId = Uuid::uuid4()->toString();
24
        if (isset($options['request-id'])) {
25
            $requestId = $options['request-id'];
26
        }
27
28
        $headers                               = $request->getHeaders();
29
        $headers['X-Bunq-Client-Request-Id'][] = $requestId;
30
        $headers['Cache-Control'][]            = 'no-cache';
31
        $headers['X-Bunq-Geolocation'][]       = '52.3 4.89 12 100 NL';
32
        $headers['X-Bunq-Language'][]          = 'nl_NL';
33
        $headers['X-Bunq-Region'][]            = 'nl_NL';
34
35
        return new Request(
36
            $request->getMethod(),
37
            $request->getUri(),
38
            $headers,
39
            $request->getBody()
40
        );
41
    }
42
}
43