73 lines
2.6 KiB
PHP
73 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\API\v1;
|
|
|
|
use App\Http\Resources\ScheduleResource;
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use App\Schedule;
|
|
use App\Client;
|
|
use Carbon\Carbon;
|
|
|
|
class ScheduleController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
return ScheduleResource::collection(Schedule::all());
|
|
}
|
|
|
|
public function success(){
|
|
$count = $this->statusCount();
|
|
$schedules = Schedule::where('last_backup_status', 'Success')->orderBy('updated_at', 'desc')->paginate(10);
|
|
return ScheduleResource::collection($schedules)->additional(['count' =>
|
|
$count
|
|
]);
|
|
}
|
|
|
|
public function warnings(){
|
|
$count = $this->statusCount();
|
|
$data = ScheduleResource::collection(Schedule::all()->where('last_backup_status', 'Warning')->sortByDesc('updated_at'));
|
|
return compact('count','data');
|
|
}
|
|
|
|
public function errors(){
|
|
$count = $this->statusCount();
|
|
$data = ScheduleResource::collection(Schedule::all()->where('last_backup_status', 'Error')->sortByDesc('updated_at'));
|
|
return compact('count','data');
|
|
}
|
|
|
|
public function noschedules(){
|
|
$count = $this->statusCount();
|
|
// $data = ScheduleResource::collection(Schedule::all()->where('last_backup_status', 'Errors')->sortByDesc('updated_at'));
|
|
$data = Client::whereDoesntHave('schedules')->get();
|
|
return compact('count','data');
|
|
}
|
|
|
|
public function norecent(){
|
|
$count = $this->statusCount();
|
|
$data = ScheduleResource::collection(Schedule::where('last_backup_time', '<=', Carbon::now()
|
|
->subHours(48)
|
|
->toDateTimeString())
|
|
->get()->sortByDesc('updated_at'));
|
|
return compact('count','data');
|
|
}
|
|
|
|
|
|
|
|
public function statusCount()
|
|
{
|
|
// $results= DB::table('backup_schedules')->select('last_backup_status', DB::raw('count(*) as count'))->groupBy('last_backup_status')->get();
|
|
$noschedules = Client::whereDoesntHave('schedules')->count();
|
|
$norecent = Schedule::where('last_backup_time', '<=', Carbon::now()
|
|
->subHours(48)
|
|
->toDateTimeString())
|
|
->count();
|
|
$errors = Schedule::where('last_backup_status' , 'Error')->count();
|
|
$successful = Schedule::where('last_backup_status' , 'Success')->count();
|
|
$warnings = Schedule::where('last_backup_status' , 'Warning')->count();
|
|
|
|
return compact('noschedules','norecent','errors','successful','warnings');
|
|
}
|
|
|
|
}
|