Completed
Push — master ( 9f6466...621974 )
by Freek
02:29 queued 58s
created

MaximumAgeInDays   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 6

Importance

Changes 0
Metric Value
dl 0
loc 43
rs 10
c 0
b 0
f 0
wmc 6
lcom 1
cbo 6

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A checkHealth() 0 14 1
A hasNoBackups() 0 4 1
A isTooOld() 0 12 3
1
<?php
2
3
namespace Spatie\Backup\Tasks\Monitor\HealthChecks;
4
5
use Spatie\Backup\BackupDestination\Backup;
6
use Spatie\Backup\Tasks\Monitor\HealthCheck;
7
use Spatie\Backup\BackupDestination\BackupDestination;
8
9
class MaximumAgeInDays extends HealthCheck
10
{
11
    /** @var int */
12
    protected $days;
13
14
    public function __construct($days = 1)
15
    {
16
        $this->days = $days;
17
    }
18
19
    public function checkHealth(BackupDestination $backupDestination)
20
    {
21
        $this->failIf(
22
            $this->hasNoBackups($backupDestination),
23
            trans('backup::notifications.unhealthy_backup_found_empty')
24
        );
25
26
        $newestBackup = $backupDestination->backups()->newest();
27
28
        $this->failIf(
29
            $this->isTooOld($newestBackup),
30
            trans('backup::notifications.unhealthy_backup_found_old', ['date' => $newestBackup->date()->format('Y/m/d h:i:s')])
31
        );
32
    }
33
34
    protected function hasNoBackups(BackupDestination $backupDestination)
35
    {
36
        return $backupDestination->backups()->isEmpty();
37
    }
38
39
    protected function isTooOld(Backup $backup)
40
    {
41
        if (is_null($this->days)) {
42
            return false;
43
        }
44
45
        if ($backup->date()->gt(now()->subDays($this->days))) {
46
            return false;
47
        }
48
49
        return true;
50
    }
51
}
52