3 namespace App\Http\Controllers;
5 use App\Events\RoundAdded;
6 use App\Events\RoundChanged;
7 use App\Models\Protocol;
9 use App\Models\Tournament;
10 use Illuminate\Http\Request;
12 class RoundController extends Controller
15 public function create(Request $request) {
16 $validatedData = $request->validate([
17 'tournament_id' => 'required|exists:App\\Models\\Tournament,id',
19 $tournament = Tournament::findOrFail($validatedData['tournament_id']);
20 $this->authorize('addRound', $tournament);
22 $round = Round::create([
23 'tournament_id' => $validatedData['tournament_id'],
32 RoundAdded::dispatch($round);
34 return $round->toJson();
37 public function setSeed(Request $request, Round $round) {
38 $this->authorize('setSeed', $round);
40 $validatedData = $request->validate([
41 'seed' => 'required|url',
44 $round->seed = $validatedData['seed'];
47 Protocol::roundSeedSet(
53 RoundChanged::dispatch($round);
55 $round->load('results');
57 return $round->toJson();