Completed
Push — master ( 8326c3...53ae2f )
by Freek
13:38
created

Site::downtime()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
1
<?php
2
3
namespace OhDear\PhpSdk\Resources;
4
5
class Site extends ApiResource
6
{
7
    /**
8
     * The id of the site.
9
     *
10
     * @var int
11
     */
12
    public $id;
13
14
    /**
15
     * The url of the site.
16
     *
17
     * @var string
18
     */
19
    public $url;
20
21
    /**
22
     * The checks of a site.
23
     *
24
     * @var Check[]
25
     */
26
    public $checks;
27
28
    /**
29
     * The sort url of the site.
30
     *
31
     * @var string
32
     */
33
    public $sortUrl;
34
35
    public function __construct(array $attributes, $ohDear = null)
36
    {
37
        parent::__construct($attributes, $ohDear);
38
39
        $this->checks = array_map(function (array $checkAttributes) {
40
            return new Check($checkAttributes);
41
        }, $this->checks);
42
    }
43
44
    /**
45
     * Delete the given site.
46
     *
47
     * @return void
48
     */
49
    public function delete()
50
    {
51
        $this->ohDear->deleteSite($this->id);
52
    }
53
54
    public function startMaintenance(int $stopMaintenanceAfterSeconds = 60 * 60)
55
    {
56
        $this->ohDear->startSiteMaintenance($this->id, $stopMaintenanceAfterSeconds);
57
    }
58
59
    public function stopMaintenance()
60
    {
61
        $this->ohDear->stopSiteMaintenance($this->id);
62
    }
63
64
    /**
65
     * Get the broken links for this site.
66
     *
67
     * @return array
68
     */
69
    public function brokenLinks()
70
    {
71
        return $this->ohDear->brokenLinks($this->id);
72
    }
73
74
    /**
75
     * Get the detected mixed content for a site.
76
     *
77
     * @return array
78
     */
79
    public function mixedContent()
80
    {
81
        return $this->ohDear->mixedContent($this->id);
82
    }
83
84
    /**
85
     * Get the uptime percentages for a site.
86
     *
87
     * @param string $startedAt  Must be in format Ymdhis
88
     * @param string $endedAt  Must be in format Ymdhis
89
     * @param string $split  Use hour, day or month
90
     *
91
     * @return array
92
     */
93
    public function uptime(string $startedAt, string $endedAt, string $split)
94
    {
95
        return $this->ohDear->uptime($this->id, $startedAt, $endedAt, $split);
96
    }
97
98
    /**
99
     * Get the downtime periods for a site.
100
     *
101
     * @param string $startedAt  Must be in format Ymdhis
102
     * @param string $endedAt  Must be in format Ymdhis
103
     *
104
     * @return array
105
     */
106
    public function downtime(string $startedAt, string $endedAt)
107
    {
108
        return $this->ohDear->downtime($this->id, $startedAt, $endedAt);
109
    }
110
111
    /**
112
     * Get information on the certificate of the site.
113
     *
114
     * @return array
115
     */
116
    public function certificateHealth()
117
    {
118
        return $this->ohDear->certificateHealth($this->id);
119
    }
120
}
121