/**
  * Bootstrap the application services.
  *
  * @return void
  */
 public function boot()
 {
     // Create a new waiting room when a Contest is saved.
     Contest::created(function ($contest) {
         $waitingRoom = new WaitingRoom();
         $waitingRoom->contest_id = $contest->getKey();
         // Default sign up period of one week.
         $waitingRoom->signup_start_date = Carbon::now();
         $waitingRoom->signup_end_date = Carbon::now()->addWeeks(1)->endOfDay();
         $waitingRoom->save();
     });
 }
Ejemplo n.º 2
0
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     // Add Admin Users
     $admins = ['*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**'];
     foreach ($admins as $admin) {
         Artisan::call('add:user', ['email' => $admin, '--role' => 'admin']);
     }
     // Add Contestant Users
     $waitingRooms = WaitingRoom::all();
     $totalRooms = count($waitingRooms);
     $seedContestants = $this->northstar->getAllUsers(['limit' => 100]);
     foreach ($seedContestants as $contestant) {
         $index = mt_rand(0, $totalRooms - 1);
         // Using first or create if someone is already an admin.
         $user = User::firstOrCreate(['id' => $contestant->id]);
         $user->waitingRooms()->save($waitingRooms[$index]);
     }
 }
 /**
  * Split the waiting room.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Gladiator\Models\WaitingRoom  $room
  * @return \Illuminate\Http\Response
  */
 public function split(SplitRequest $request, WaitingRoom $room)
 {
     $split = $room->getSplit($request->competition_max);
     $contest = Contest::find($room->contest_id);
     $room->saveSplit($contest, $split, $request);
     return redirect()->route('contests.show', $room->contest_id)->with('status', 'Waiting Room has been split!');
 }