Endpoint   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 3
Bugs 0 Features 0
Metric Value
eloc 6
dl 0
loc 29
ccs 7
cts 7
cp 1
rs 10
c 3
b 0
f 0
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A response() 0 3 1
A request() 0 3 1
A matches() 0 4 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Cerbero\LazyJsonPages\Sources;
6
7
use Cerbero\JsonParser\Concerns\DetectsEndpoints;
8
use GuzzleHttp\Psr7\Request;
9
use Psr\Http\Message\RequestInterface;
10
use Psr\Http\Message\ResponseInterface;
11
use Psr\Http\Message\UriInterface;
12
13
/**
14
 * The JSON endpoint source.
15
 *
16
 * @property-read UriInterface|string $source
17
 */
18
class Endpoint extends Source
19
{
20
    use DetectsEndpoints;
21
22
    /**
23
     * Determine whether this class can handle the source.
24
     */
25 47
    public function matches(): bool
26
    {
27 47
        return (is_string($this->source) && $this->isEndpoint($this->source))
28 47
            || $this->source instanceof UriInterface;
29
    }
30
31
    /**
32
     * Retrieve the HTTP request.
33
     */
34 40
    public function request(): RequestInterface
35
    {
36 40
        return new Request('GET', $this->source);
37
    }
38
39
    /**
40
     * Retrieve the HTTP response.
41
     *
42
     * @return ResponseInterface
43
     */
44 40
    public function response(): ResponseInterface
45
    {
46 40
        return $this->client->send($this->request());
47
    }
48
}
49