RPLogsHelper   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 19
dl 0
loc 47
rs 10
c 1
b 0
f 0
wmc 6

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getLog() 0 5 1
A clearLogs() 0 12 2
A downloadLogs() 0 12 2
A __construct() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Facile\OpenIDClient\ConformanceTest\Helper;
6
7
use Http\Discovery\Psr17FactoryDiscovery;
8
use Http\Discovery\Psr18ClientDiscovery;
9
use Psr\Http\Client\ClientInterface;
10
use Psr\Http\Message\RequestFactoryInterface;
11
use Psr\Http\Message\ResponseInterface;
12
13
class RPLogsHelper
14
{
15
    /** @var ClientInterface */
16
    private $client;
17
18
    /** @var RequestFactoryInterface */
19
    private $requestFactory;
20
21
    public function __construct(?ClientInterface $client = null, ?RequestFactoryInterface $requestFactory = null)
22
    {
23
        $this->client = $client ?? Psr18ClientDiscovery::find();
24
        $this->requestFactory = $requestFactory ?? Psr17FactoryDiscovery::findRequestFactory();
25
    }
26
27
    public function clearLogs(string $root, string $rpId): void
28
    {
29
        $request = $this->requestFactory->createRequest('GET', $root . '/log/' . $rpId);
30
        $response = $this->client->sendRequest($request);
31
32
        if (! \preg_match('/Clear all test logs/', (string) $response->getBody())) {
33
            return;
34
        }
35
36
        $request = $this->requestFactory->createRequest('GET', $root . '/clear/' . $rpId);
37
38
        $this->client->sendRequest($request);
39
    }
40
41
    public function getLog(string $root, string $rpId, string $testId): ?ResponseInterface
42
    {
43
        $request = $this->requestFactory->createRequest('GET', $root . '/log/' . $rpId . '/' . $testId . '.txt');
44
45
        return $this->client->sendRequest($request);
46
    }
47
48
    public function downloadLogs(string $root, string $rpId): ?ResponseInterface
49
    {
50
        $request = $this->requestFactory->createRequest('GET', $root . '/log/' . $rpId);
51
        $response = $this->client->sendRequest($request);
52
53
        if (! \preg_match('/Download tar file/', (string) $response->getBody())) {
54
            return null;
55
        }
56
57
        $request = $this->requestFactory->createRequest('GET', $root . '/mktar/' . $rpId);
58
59
        return $this->client->sendRequest($request);
60
    }
61
}
62