OhDear   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Importance

Changes 7
Bugs 2 Features 0
Metric Value
eloc 31
dl 0
loc 54
rs 10
c 7
b 2
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setClient() 0 5 1
A transformCollection() 0 5 1
A __construct() 0 12 1
A convertDateFormat() 0 3 1
1
<?php
2
3
namespace OhDear\PhpSdk;
4
5
use Carbon\Carbon;
6
use GuzzleHttp\Client;
7
use OhDear\PhpSdk\Actions\ManagesBrokenLinks;
8
use OhDear\PhpSdk\Actions\ManagesCertificateHealth;
9
use OhDear\PhpSdk\Actions\ManagesChecks;
10
use OhDear\PhpSdk\Actions\ManagesCronChecks;
11
use OhDear\PhpSdk\Actions\ManagesDowntime;
12
use OhDear\PhpSdk\Actions\ManagesMaintenancePeriods;
13
use OhDear\PhpSdk\Actions\ManagesMixedContent;
14
use OhDear\PhpSdk\Actions\ManagesPerformance;
15
use OhDear\PhpSdk\Actions\ManagesSites;
16
use OhDear\PhpSdk\Actions\ManagesStatusPages;
17
use OhDear\PhpSdk\Actions\ManagesUptime;
18
use OhDear\PhpSdk\Actions\ManagesUsers;
19
20
class OhDear
21
{
22
    use MakesHttpRequests,
23
        ManagesSites,
24
        ManagesChecks,
25
        ManagesUsers,
26
        ManagesBrokenLinks,
27
        ManagesMaintenancePeriods,
28
        ManagesMixedContent,
29
        ManagesUptime,
30
        ManagesDowntime,
31
        ManagesCertificateHealth,
32
        ManagesStatusPages,
33
        ManagesPerformance,
34
        ManagesCronChecks;
35
36
    /** @var string */
37
    public string $apiToken;
38
39
    public Client $client;
40
41
    public function __construct(string $apiToken, string $baseUri = 'https://ohdear.app/api/')
42
    {
43
        $this->apiToken = $apiToken;
44
45
        $this->client = new Client([
46
            'base_uri' => $baseUri,
47
            'http_errors' => false,
48
            'verify' => false,
49
            'headers' => [
50
                'Authorization' => "Bearer {$this->apiToken}",
51
                'Accept' => 'application/json',
52
                'Content-Type' => 'application/json',
53
            ],
54
        ]);
55
    }
56
57
    public function setClient(Client $client): self
58
    {
59
        $this->client = $client;
60
61
        return $this;
62
    }
63
64
    protected function transformCollection(array $collection, string $class): array
65
    {
66
        return array_map(function ($attributes) use ($class) {
67
            return new $class($attributes, $this);
68
        }, $collection);
69
    }
70
71
    public function convertDateFormat(string $date, $format = 'YmdHis'): string
72
    {
73
        return Carbon::parse($date)->format($format);
74
    }
75
}
76