auditionadmin/app/Http/Controllers/Judging/BonusScoreRecordController.php

31 lines
1017 B
PHP

<?php
namespace App\Http\Controllers\Judging;
use App\Actions\Tabulation\EnterBonusScore;
use App\Exceptions\AuditionAdminException;
use App\Http\Controllers\Controller;
use App\Models\Entry;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Auth;
class BonusScoreRecordController extends Controller
{
public function __invoke(Entry $entry)
{
$enterBonusScore = App::make(EnterBonusScore::class);
$max = $entry->audition->bonusScore()->first()->max_score;
$validData = request()->validate([
'score' => 'required|integer|min:0|max:'.$max,
]);
try {
$enterBonusScore(Auth::user(), $entry, $validData['score']);
} catch (AuditionAdminException $ex) {
return redirect(route('dashboard'))->with('error', 'Score Entry Error - '.$ex->getMessage());
}
return redirect()->route('judging.bonusScore.EntryList', $entry->audition)->with('success',
'Score Recorded Successfully');
}
}