Passed
Push — develop ( d5e170...468d1d )
by Darío
01:13 queued 11s
created

GuzzleAdapter::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 1
1
<?php
2
3
namespace EasyHttp\GuzzleLayer;
4
5
use EasyHttp\LayerContracts\Contracts\HttpClientAdapter;
6
use EasyHttp\LayerContracts\Contracts\HttpClientRequest;
7
use EasyHttp\LayerContracts\Contracts\HttpClientResponse;
8
use EasyHttp\LayerContracts\Exceptions\HttpClientException;
9
use GuzzleHttp\ClientInterface;
10
use GuzzleHttp\Exception\RequestException;
11
use GuzzleHttp\Exception\TransferException;
12
13
class GuzzleAdapter implements HttpClientAdapter
14
{
15
    protected ClientInterface $client;
16
17 15
    public function __construct(ClientInterface $client)
18
    {
19 15
        $this->client = $client;
20 15
    }
21
22 15
    public function request(HttpClientRequest $request): HttpClientResponse
23
    {
24
        try {
25 15
            $response = $this->client->request($request->getMethod(), $request->getUri(), $request->options());
26 4
        } catch (RequestException $exception) {
27 4
            if (! $exception->hasResponse()) {
28 2
                throw HttpClientException::fromThrowable($exception);
29
            }
30
31 2
            $response = $exception->getResponse();
32
        } catch (TransferException $exception) {
33
            throw HttpClientException::fromThrowable($exception);
34
        }
35
36 13
        return new GuzzleResponse($response);
37
    }
38
}
39