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

BackupStatusesController::__invoke()   A

Complexity

Conditions 2
Paths 1

Size

Total Lines 19
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

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