Eliminate custom excpetion

This commit is contained in:
Matt Young 2024-06-15 23:15:39 -05:00
parent 03953452b2
commit 01c0365b5d
4 changed files with 14 additions and 14 deletions

View File

@ -16,9 +16,7 @@ class TabulationException extends Exception
public function render($request)
{
// if ($e instanceof TabulationException) {
dd('in the render');
return redirect('/tabulation/status')->with('error', $this->getMessage());
// }
// return parent::render($request, $e);
}
}

View File

@ -10,6 +10,7 @@ use App\Models\User;
use Illuminate\Support\Facades\Cache;
use App\Services\AuditionCacheService;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Session;
class TabulationService
@ -63,7 +64,7 @@ class TabulationService
*/
public function entryFinalScores(Entry $entry) {
$audition = $this->auditionCacheService->getAudition($entry->audition_id);
$this->validateEntryScoreSheets($entry);
if (! $this->entryScoreSheetsAreValid($entry)) return null;
$subscores = $audition->scoringGuide->subscores->sortBy('tiebreak_order');
$finalScoresArray = [];
@ -90,15 +91,14 @@ class TabulationService
return $finalScoresArray;
}
/**
* @throws TabulationException
*/
public function validateEntryScoreSheets(Entry $entry): bool {
$audition = $this->auditionCacheService->getAudition($entry->audition_id);
public function entryScoreSheetsAreValid(Entry $entry): bool {
//TODO consider making this move the invalid score to another database for further investication
$validJudges = $this->auditionCacheService->getAudition($entry->audition_id)->judges;
foreach ($entry->scoreSheets as $sheet) {
if (! $audition->judges->contains($sheet->user_id)) {
if (! $validJudges->contains($sheet->user_id)) {
$invalidJudge = User::find($sheet->user_id);
throw new TabulationException('Invalid scores for entry ' . $entry->id . ' exist from ' . $invalidJudge->full_name());
Session::flash('error','Invalid scores for entry ' . $entry->id . ' exist from ' . $invalidJudge->full_name());
return false;
}
}
return true;

View File

@ -1,5 +1,6 @@
<?php
use App\Exceptions\TabulationException;
use App\Http\Middleware\LoadAuditionSettings;
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;

View File

@ -9,15 +9,16 @@
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Session;
@endphp
@inject('tabservice','App\Services\TabulationService');
<x-layout.app>
<x-slot:page_title>Test Page</x-slot:page_title>
@php(dd($auditions))
@php(dd($tabservice->entryScoreSheetsAreValid(Entry::find(1102))))
@foreach($auditions as $audition)
{{ $audition->name }} has {{ $audition->entries_count }} entries. {{ $audition->scored_entries_count }} are fully scored.<br>
{{ $audition->name }} has {{ $audition->entries_count }} entries. {{ $audition->scored_entries_count }} are
fully scored.<br>
@endforeach
</x-layout.app>