Code Duplication    Length = 42-42 lines in 2 locations

src/Integrations/PSR7/Providers/ExtractsRequestIdFromHeader.php 1 location

@@ 18-59 (lines=42) @@
15
use Arki\RequestId\RequestId;
16
use Psr\Http\Message\RequestInterface;
17
18
final class ExtractsRequestIdFromHeader implements RequestIdProvider
19
{
20
    /**
21
     * @var string
22
     */
23
    private $headerName;
24
    /**
25
     * @var RequestIdProvider
26
     */
27
    private $fallback;
28
    /**
29
     * @var RequestInterface
30
     */
31
    private $request;
32
33
    /**
34
     * @param RequestInterface  $request
35
     * @param string            $headerName
36
     * @param RequestIdProvider $fallback
37
     */
38
    public function __construct(
39
        RequestInterface $request,
40
        RequestIdProvider $fallback,
41
        $headerName = RequestId::HEADER_NAME
42
    ) {
43
        $this->headerName = $headerName;
44
        $this->fallback = $fallback;
45
        $this->request = $request;
46
    }
47
48
    /**
49
     * @return string
50
     */
51
    public function getRequestId()
52
    {
53
        if ($this->request->hasHeader($this->headerName)) {
54
            return $this->request->getHeader($this->headerName);
55
        }
56
57
        return $this->fallback->getRequestId();
58
    }
59
}
60

src/Integrations/Symfony/Providers/ExtractsRequestIdFromHeader.php 1 location

@@ 18-59 (lines=42) @@
15
use Arki\RequestId\RequestId;
16
use Symfony\Component\HttpFoundation\Request;
17
18
final class ExtractsRequestIdFromHeader implements RequestIdProvider
19
{
20
    /**
21
     * @var string
22
     */
23
    private $headerName;
24
    /**
25
     * @var RequestIdProvider
26
     */
27
    private $fallback;
28
    /**
29
     * @var Request
30
     */
31
    private $request;
32
33
    /**
34
     * @param Request           $request
35
     * @param string            $headerName
36
     * @param RequestIdProvider $fallback
37
     */
38
    public function __construct(
39
        Request $request,
40
        RequestIdProvider $fallback,
41
        $headerName = RequestId::HEADER_NAME
42
    ) {
43
        $this->headerName = $headerName;
44
        $this->fallback = $fallback;
45
        $this->request = $request;
46
    }
47
48
    /**
49
     * @return string
50
     */
51
    public function getRequestId()
52
    {
53
        if ($this->request->headers->has($this->headerName)) {
54
            return $this->request->headers->get($this->headerName);
55
        }
56
57
        return $this->fallback->getRequestId();
58
    }
59
}
60