From 43889d9587b9bd29c402c39c78fe04ef7f0410b6 Mon Sep 17 00:00:00 2001 From: Matt Young Date: Thu, 27 Jun 2024 15:04:59 -0500 Subject: [PATCH] Fix TODO modifying audition limits should refresh the acceptance limits cache --- app/Events/SeatingLimitChange.php | 36 ++++++++++++++++ app/Listeners/RefreshSeatingLimitCache.php | 28 +++++++++++++ app/Observers/SeatingLimitObserver.php | 49 ++++++++++++++++++++++ app/Providers/AppServiceProvider.php | 10 +++++ app/Services/SeatingService.php | 2 +- 5 files changed, 124 insertions(+), 1 deletion(-) create mode 100644 app/Events/SeatingLimitChange.php create mode 100644 app/Listeners/RefreshSeatingLimitCache.php create mode 100644 app/Observers/SeatingLimitObserver.php diff --git a/app/Events/SeatingLimitChange.php b/app/Events/SeatingLimitChange.php new file mode 100644 index 0000000..5217dfe --- /dev/null +++ b/app/Events/SeatingLimitChange.php @@ -0,0 +1,36 @@ + + */ + public function broadcastOn(): array + { + return [ + new PrivateChannel('channel-name'), + ]; + } +} diff --git a/app/Listeners/RefreshSeatingLimitCache.php b/app/Listeners/RefreshSeatingLimitCache.php new file mode 100644 index 0000000..d309d15 --- /dev/null +++ b/app/Listeners/RefreshSeatingLimitCache.php @@ -0,0 +1,28 @@ +seatingService = $seatingService; + } + + /** + * Handle the event. + */ + public function handle(SeatingLimitChange $event): void + { + $this->seatingService->refreshLimits(); + } +} diff --git a/app/Observers/SeatingLimitObserver.php b/app/Observers/SeatingLimitObserver.php new file mode 100644 index 0000000..5b36ca7 --- /dev/null +++ b/app/Observers/SeatingLimitObserver.php @@ -0,0 +1,49 @@ +limitsCacheKey, now()->addDay(), function () { $limits = SeatingLimit::with('ensemble')->get(); // Sort limits by ensemble->rank