From f2be14402f645ef2b5a43fcf6fd48659573fe063 Mon Sep 17 00:00:00 2001 From: "B.Fatih KOZ" <74361521+FatihKoz@users.noreply.github.com> Date: Mon, 10 May 2021 01:30:50 +0300 Subject: [PATCH] PirepCancelled Event (Cron Expired Pirep Deletion) (#1178) * PirepCancelled Event (Cron Expired Pirep Deletion) While deleting frozen in progress pireps we should at least send a PirepCancelled event for those who are listening. (or we may have a new PirepDeleted event to be issued in such cases, I think PirepCancelled is enough though) * StyleFix * Another StyleFix * Missing Log Of course it will not be possible to write log entries without the Log itself. --- app/Cron/Hourly/RemoveExpiredLiveFlights.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/Cron/Hourly/RemoveExpiredLiveFlights.php b/app/Cron/Hourly/RemoveExpiredLiveFlights.php index ed7c1adb..7700b41f 100644 --- a/app/Cron/Hourly/RemoveExpiredLiveFlights.php +++ b/app/Cron/Hourly/RemoveExpiredLiveFlights.php @@ -4,9 +4,11 @@ namespace App\Cron\Hourly; use App\Contracts\Listener; use App\Events\CronHourly; +use App\Events\PirepCancelled; use App\Models\Enums\PirepState; use App\Models\Pirep; use Carbon\Carbon; +use Illuminate\Support\Facades\Log; /** * Remove expired live flights @@ -27,8 +29,13 @@ class RemoveExpiredLiveFlights extends Listener } $date = Carbon::now('UTC')->subHours(setting('acars.live_time')); - Pirep::where('updated_at', '<', $date) + $pireps = Pirep::where('updated_at', '<', $date) ->where('state', PirepState::IN_PROGRESS) - ->delete(); + ->get(); + foreach ($pireps as $pirep) { + event(new PirepCancelled($pirep)); + Log::info('Cron: Deleting Expired Live PIREP id='.$pirep->id.', state='.PirepState::label($pirep->state)); + $pirep->delete(); + } } }