Passed
Pull Request — master (#18)
by
unknown
08:11
created

CachingClientFactory::createClient()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
eloc 7
c 2
b 0
f 0
nc 1
nop 0
dl 0
loc 15
ccs 0
cts 8
cp 0
crap 2
rs 10
1
<?php
2
3
namespace MadWizard\WebAuthn\Remote;
4
5
use GuzzleHttp\Client;
6
use GuzzleHttp\HandlerStack;
7
use Kevinrob\GuzzleCache\CacheMiddleware;
8
use Kevinrob\GuzzleCache\Storage\Psr6CacheStorage;
9
use Kevinrob\GuzzleCache\Strategy\PrivateCacheStrategy;
10
use MadWizard\WebAuthn\Cache\CacheProviderInterface;
11
12
final class CachingClientFactory
13
{
14
    /**
15
     * @var CacheProviderInterface
16
     */
17
    private $cacheProvider;
18
19
    public function __construct(CacheProviderInterface $cacheProvider)
20
    {
21
        $this->cacheProvider = $cacheProvider;
22
    }
23
24
    public function createClient(): Client
25
    {
26
        $stack = HandlerStack::create();
27
28
        $stack->push(
29
            new CacheMiddleware(
30
                new PrivateCacheStrategy(
31
                    new Psr6CacheStorage(
32
                        $this->cacheProvider->getCachePool('http')
33
                    )
34
                )
35
            )
36
        );
37
38
        return new Client(['handler' => $stack]);
39
    }
40
}
41