From ada3865f6a0f0a9dd01b00d039a68b128914690c Mon Sep 17 00:00:00 2001 From: Matt Young Date: Sat, 9 Nov 2024 01:53:31 -0600 Subject: [PATCH] Caching improvements --- app/Actions/Tabulation/AllJudgesCount.php | 2 +- app/Actions/Tabulation/AllowForOlympicScoring.php | 2 +- app/Actions/Tabulation/RankAuditionEntries.php | 2 +- app/Http/Controllers/Admin/EnsembleController.php | 2 ++ app/Http/Controllers/Admin/EntryController.php | 6 +++--- app/Models/ScoreSheet.php | 5 +++++ app/Services/AuditionService.php | 4 ++-- app/Services/DoublerService.php | 2 +- 8 files changed, 16 insertions(+), 9 deletions(-) diff --git a/app/Actions/Tabulation/AllJudgesCount.php b/app/Actions/Tabulation/AllJudgesCount.php index f9bcb5e..0089211 100644 --- a/app/Actions/Tabulation/AllJudgesCount.php +++ b/app/Actions/Tabulation/AllJudgesCount.php @@ -30,7 +30,7 @@ class AllJudgesCount implements CalculateEntryScore $cacheKey = 'entryScore-'.$entry->id.'-'.$mode; - return Cache::remember($cacheKey, 10, function () use ($mode, $entry) { + return Cache::remember($cacheKey, 300, function () use ($mode, $entry) { $this->isEntryANoShow($entry); $this->basicValidation($mode, $entry); $this->areAllJudgesIn($entry); diff --git a/app/Actions/Tabulation/AllowForOlympicScoring.php b/app/Actions/Tabulation/AllowForOlympicScoring.php index 66472a6..44c237b 100644 --- a/app/Actions/Tabulation/AllowForOlympicScoring.php +++ b/app/Actions/Tabulation/AllowForOlympicScoring.php @@ -42,7 +42,7 @@ class AllowForOlympicScoring implements CalculateEntryScore $cacheKey = 'entryScore-'.$entry->id.'-'.$mode; - return Cache::remember($cacheKey, 10, function () use ($mode, $entry) { + return Cache::remember($cacheKey, 300, function () use ($mode, $entry) { $this->basicValidation($mode, $entry); $this->isEntryANoShow($entry); $this->areAllJudgesIn($entry); diff --git a/app/Actions/Tabulation/RankAuditionEntries.php b/app/Actions/Tabulation/RankAuditionEntries.php index 6ddcb6f..e593462 100644 --- a/app/Actions/Tabulation/RankAuditionEntries.php +++ b/app/Actions/Tabulation/RankAuditionEntries.php @@ -24,7 +24,7 @@ class RankAuditionEntries { $cacheKey = 'audition'.$audition->id.$mode; - return Cache::remember($cacheKey, 30, function () use ($mode, $audition) { + return Cache::remember($cacheKey, 300, function () use ($mode, $audition) { return $this->calculateRank($mode, $audition); }); diff --git a/app/Http/Controllers/Admin/EnsembleController.php b/app/Http/Controllers/Admin/EnsembleController.php index 999963b..4cc0c45 100644 --- a/app/Http/Controllers/Admin/EnsembleController.php +++ b/app/Http/Controllers/Admin/EnsembleController.php @@ -8,6 +8,7 @@ use App\Models\Event; use App\Models\SeatingLimit; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Cache; use function redirect; @@ -85,6 +86,7 @@ class EnsembleController extends Controller public function seatingLimitsSet(Request $request, Ensemble $ensemble) { + Cache::forget('auditionSeatingLimits'); $request->validate([ 'audition' => 'required', 'audition.*' => ['integer', 'min:0'], diff --git a/app/Http/Controllers/Admin/EntryController.php b/app/Http/Controllers/Admin/EntryController.php index 37ae633..fdc7145 100644 --- a/app/Http/Controllers/Admin/EntryController.php +++ b/app/Http/Controllers/Admin/EntryController.php @@ -68,19 +68,19 @@ class EntryController extends Controller }); } - if ($filters['entry_type']) { + if (isset($filters['entry_type']) && $filters['entry_type']) { // TODO define actions for each possible type filter from index.blade.php of the admin entry match ($filters['entry_type']) { 'all' => null, 'seats' => $entries->where('for_seating', true), 'advancement' => $entries->where('for_advancement', true), - 'seatsOnly' => $entries->where('for_seating', true)->where('for_advancement', false) , + 'seatsOnly' => $entries->where('for_seating', true)->where('for_advancement', false), 'advancementOnly' => $entries->where('for_seating', false)->where('for_advancement', true), default => null, }; } - if ($filters['entries_per_page']) { + if (isset($filters['entries_per_page']) && $filters['entries_per_page']) { $perPage = $filters['entries_per_page']; } diff --git a/app/Models/ScoreSheet.php b/app/Models/ScoreSheet.php index d3a1e47..b8b4698 100644 --- a/app/Models/ScoreSheet.php +++ b/app/Models/ScoreSheet.php @@ -5,6 +5,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasOneThrough; +use Illuminate\Support\Facades\Cache; class ScoreSheet extends Model { @@ -65,6 +66,10 @@ class ScoreSheet extends Model $entry = $this->entry; if ($entry) { $entry->calculatedScores()->delete(); + Cache::forget('entryScore-'.$entry->id.'-seating'); + Cache::forget('entryScore-'.$entry->id.'-advancement'); + Cache::forget('audition'.$entry->audition_id.'seating'); + Cache::forget('audition'.$entry->audition_id.'advancement'); } } } diff --git a/app/Services/AuditionService.php b/app/Services/AuditionService.php index d4e7530..3b7c070 100644 --- a/app/Services/AuditionService.php +++ b/app/Services/AuditionService.php @@ -31,7 +31,7 @@ class AuditionService { $cacheKey = 'auditionSubscores-'.$audition->id.'-'.$mode.'-'.$sort; - return Cache::remember($cacheKey, 10, function () use ($audition, $mode, $sort) { + return Cache::remember($cacheKey, 300, function () use ($audition, $mode, $sort) { $this->validateAudition($audition); $this->validateMode($mode); $this->validateSort($sort); @@ -85,7 +85,7 @@ class AuditionService public function getSeatingLimits(Audition $audition) { $cacheKey = 'auditionSeatingLimits'; - $allLimits = Cache::remember($cacheKey, 60, function () { + $allLimits = Cache::remember($cacheKey, 300, function () { $lims = []; $auditions = Audition::all(); $ensembles = Ensemble::orderBy('rank')->get(); diff --git a/app/Services/DoublerService.php b/app/Services/DoublerService.php index 403c013..887f104 100644 --- a/app/Services/DoublerService.php +++ b/app/Services/DoublerService.php @@ -29,7 +29,7 @@ class DoublerService { $cacheKey = 'event'.$event->id.'doublers-'.$mode; - return Cache::remember($cacheKey, 60, function () use ($event, $mode) { + return Cache::remember($cacheKey, 300, function () use ($event, $mode) { return $this->findDoublersForEvent($event, $mode); }); }