6c3992e781
* Fix for Hourly Cron We should be using whereTime instead of whereDate https://laravel.com/docs/8.x/queries#additional-where-clauses `The whereDate method may be used to compare a column's value against a date` * Fix for RemoveExpiredBids I used where to do check 'cause people may set 48 hours to remove a bid, thus neither whereDate nor whereTime will give a correct results. * Fix for DeletePireps I used where to do check 'cause people may set 48 hours to delete cancelled or rejected pireps, thus neither whereDate nor whereTime will give a correct results.
35 lines
764 B
PHP
35 lines
764 B
PHP
<?php
|
|
|
|
namespace App\Cron\Hourly;
|
|
|
|
use App\Contracts\Listener;
|
|
use App\Events\CronHourly;
|
|
use App\Models\Enums\PirepState;
|
|
use App\Models\Pirep;
|
|
use Carbon\Carbon;
|
|
|
|
/**
|
|
* Remove expired live flights
|
|
*/
|
|
class RemoveExpiredLiveFlights extends Listener
|
|
{
|
|
/**
|
|
* Remove expired live flights that haven't had an update in the live time
|
|
*
|
|
* @param CronHourly $event
|
|
*
|
|
* @throws \Exception
|
|
*/
|
|
public function handle(CronHourly $event): void
|
|
{
|
|
if (setting('acars.live_time') === 0) {
|
|
return;
|
|
}
|
|
|
|
$date = Carbon::now()->subHours(setting('acars.live_time'));
|
|
Pirep::whereTime('updated_at', '<', $date)
|
|
->where('state', PirepState::IN_PROGRESS)
|
|
->delete();
|
|
}
|
|
}
|