OhDear::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 9
nc 1
nop 2
dl 0
loc 12
rs 9.9666
c 1
b 0
f 0
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