Exemplo n.º 1
0
 public function store()
 {
     // return Input::all();
     $emailRule = Auth::guest() ? 'required' : '';
     $rules = ['name' => 'required|min:6', 'url' => 'required|url|min:11', 'email' => $emailRule];
     $messages = ['name.required' => Config::get('site.validate.name.required'), 'name.min' => Config::get('site.validate.name.min'), 'url.required' => Config::get('site.validate.url.required'), 'url.url' => Config::get('site.validate.url.url'), 'url.min' => Config::get('site.validate.url.min'), 'email.required' => Config::get('site.validate.email.required')];
     $validator = Validator::make(Input::all(), $rules, $messages);
     if ($validator->fails()) {
         return Redirect::back()->withErrors($validator)->withInput();
     }
     // Extracts the YouTube ID from various URL structures
     $name = Input::get('name');
     $url = Input::get('url');
     if (preg_match('%(?:youtube(?:-nocookie)?\\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\\.be/)([^"&?/ ]{11})%i', $url, $match)) {
         $id = $match[1];
         $image_url = "http://img.youtube.com/vi/{$id}/hqdefault.jpg";
     } else {
         return Redirect::back()->withMessage(Config::get('site.message.youtube-failed'));
     }
     $storedMP4 = MP4::whereName(Input::get('name'))->first();
     if ($storedMP4) {
         if (Request::ajax()) {
             $response = [];
             $response['success'] = true;
             $response['url'] = "/mp4/{$storedMP3->id}";
             return $response;
         }
         return Redirect::to("mp4/{$storedMP4->id}");
     }
     // Check if there's a user logged in. If not, use the admin ID.
     $admin_id = User::whereAdmin(1)->first()->id;
     $user_id = Auth::check() ? Auth::user()->id : $admin_id;
     // Insert the infos in the database
     $mp4 = new MP4();
     $mp4->name = Input::get('name');
     $mp4->youtube_id = $id;
     $mp4->image = $image_url;
     $mp4->user_id = $user_id;
     $mp4->category_id = Input::get('cat');
     $mp4->description = Input::get('description');
     $mp4->save();
     if (App::environment() == 'production') {
         TKPM::tweet($mp4, 'mp4');
     }
     if (Auth::guest() && Input::has('email')) {
         $mp4->userEmail = Input::get('email');
         $data = ['mp4' => $mp4, 'subject' => 'Felisitasyon!!! Ou fèk mete yon nouvo mizik'];
         TKPM::sendMail('emails.user.guest4', $data, 'guest4');
     } else {
         // Send a  email to the new user letting them know their video has been uploaded
         $data = ['mp4' => $mp4, 'subject' => 'Felisitasyon!!! Ou fèk mete yon nouvo videyo'];
         TKPM::sendMail('emails.user.mp4', $data, 'mp4');
     }
     Cache::flush();
     return Redirect::to('mp4/' . $mp4->id);
 }