Test Failed
Push — master ( 276ee0...707900 )
by Pavel
06:09
created

BackupStatusesController   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 16
dl 0
loc 21
c 1
b 0
f 0
rs 10
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 19 2
1
<?php
2
3
namespace PavelMironchik\LaravelBackupPanel\Http\Controllers;
4
5
use Illuminate\Http\Request;
6
use Illuminate\Support\Facades\Cache;
7
use Spatie\Backup\Helpers\Format;
8
use Spatie\Backup\Tasks\Monitor\BackupDestinationStatus;
9
use Spatie\Backup\Tasks\Monitor\BackupDestinationStatusFactory;
10
11
class BackupStatusesController extends Controller
12
{
13
    public function __invoke(Request $request)
14
    {
15
        return Cache::remember('backup-statuses', now()->addSeconds(4), function () {
16
            return BackupDestinationStatusFactory::createForMonitorConfig(config('backup.monitor_backups'))
17
                ->map(function (BackupDestinationStatus $backupDestinationStatus) {
18
                    return [
19
                        'name' => $backupDestinationStatus->backupDestination()->backupName(),
20
                        'disk' => $backupDestinationStatus->backupDestination()->diskName(),
21
                        'reachable' => $backupDestinationStatus->backupDestination()->isReachable(),
22
                        'healthy' => $backupDestinationStatus->isHealthy(),
23
                        'amount' => $backupDestinationStatus->backupDestination()->backups()->count(),
24
                        'newest' => $backupDestinationStatus->backupDestination()->newestBackup()
25
                            ? $backupDestinationStatus->backupDestination()->newestBackup()->date()->diffForHumans()
26
                            : 'No backups present',
27
                        'usedStorage' => Format::humanReadableSize($backupDestinationStatus->backupDestination()->usedStorage()),
28
                    ];
29
                })
30
                ->values()
31
                ->toArray();
32
        });
33
    }
34
}
35