/**
  * Update the specified resource in storage.
  *
  * @param SubmissionRequest $request
  * @param Submission $submission
  * @return \Illuminate\Http\RedirectResponse
  */
 public function update(SubmissionRequest $request, Submission $submission)
 {
     $submission->update($request->all());
     if ($request->get('active')) {
         $submission->active = true;
     } else {
         $submission->active = false;
     }
     if ($request->get('bonus')) {
         $submission->bonus = true;
     } else {
         $submission->bonus = false;
     }
     $submission->save();
     return redirect()->action('SubmissionsController@index');
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request, $id)
 {
     $submission = new Submission();
     $form = Form::findorfail($id);
     if ($form->validateInputs($request)) {
         $inputs = $request->all();
         // We don't need the CSRF token, so drop it
         unset($inputs['_token']);
         $submission->submission = $this->prepareSubmission($inputs, $form);
         $submission->form_id = $id;
         $submission->save();
         Event::fire(new FormWasSubmitted($form, $submission));
         return view('submissions.confirmation', ['form' => $form, 'submission' => $submission]);
     } else {
         dd('validation failed');
     }
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     $data = $request->all();
     if (!empty($data) && isset($data['id'])) {
         $videoId = $data['id'];
         $song = new Song();
         $row = $song->where('video_id', $videoId)->first();
         if (is_null($row)) {
             $submission = new Submission();
             $user = \Auth::user();
             $latestSong = new Song();
             $latestSong = $latestSong->orderby('updated_at', 'desc')->first();
             // Add song
             $song->video_id = $videoId;
             $song->video_name = $data['name'];
             $song->video_duration = $data['duration'];
             $song->created_at = Carbon::now()->addHours(2);
             if (is_null($latestSong)) {
                 $song->updated_at = $song->created_at;
             } else {
                 // We want to set the updated_at coorsponding to latest added
                 // song duration, for a consistent playlist.
                 $latestSongUpdateDate = Carbon::parse($latestSong->updated_at)->timestamp;
                 $latestSongDuration = $latestSong->video_duration;
                 $nextUpdateAtStop = $latestSongUpdateDate + $latestSongDuration;
                 $song->updated_at = Carbon::createFromTimestamp($nextUpdateAtStop)->toDateTimeString();
             }
             $song->save();
             $submission->facebook_id = $user->facebook_id;
             $submission->playlist_id = $song->video_id;
             $submission->save();
             // Publish song added
             $this->pusher->trigger('playlist-channel', 'song-added', []);
             return new Response(json_encode($song), Response::HTTP_CREATED);
         } else {
             // Song record already exists
             return new Response('Conflict', Response::HTTP_CONFLICT);
         }
     }
     // Request data not supported
     return new Response('Unprocessable Entity', Response::HTTP_UNPROCESSABLE_ENTITY);
 }