/**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(ContestRequest $request)
 {
     $contest = Contest::create(['campaign_id' => $request->input('campaign_id'), 'campaign_run_id' => $request->input('campaign_run_id'), 'sender_email' => $request->input('sender_email'), 'sender_name' => $request->input('sender_name')]);
     $contest->waitingRoom->fill($request->only(['signup_start_date', 'signup_end_date']))->save();
     $repository = new MessageRepository();
     $repository->createMessagesForContest($contest, $request->input('messages'));
     return redirect()->action('ContestsController@show', $contest->id)->with('status', 'Contest has been saved!');
 }
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     $contests = Contest::all();
     $messages = $this->repository->getMessagesFromSettings();
     foreach ($contests as $contest) {
         if (!$contest->messages->count()) {
             $this->repository->createMessagesForContestFromSettings($contest, $messages);
         }
     }
 }
 /**
  * Update the specified resources.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  string  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $contest = Contest::findOrFail($id);
     $this->msgRepository->updateMessagesForContest($contest, $request->input('messages'));
     return redirect()->action('ContestsController@show', $contest->id)->with('status', 'Messages have been updated!');
 }