/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(StoreProductRequest $request) { // validate request further according to type switch ($request->type) { case 'MOVIE': case 'SERIES': case 'ANIME': case 'VIDEO': $valRequest = new StoreVideoRequest(); $this->validate($request, $valRequest->rules()); $info = new Video($request->all()); break; case 'GAME': $valRequest = new StoreGameRequest(); $this->validate($request, $valRequest->rules()); $info = new Game($request->all()); break; } if (in_array($request->type, ['MOVIE', 'SERIES', 'ANIME', 'VIDEO'])) { $this->StoreVideo($request, $info); } else { if ($request->type == "GAME") { $this->StoreGame($request, $info); } } // flash message session()->flash('flash_message', 'Product added successfully.'); return redirect()->route('products.create', ['type' => strtolower($request->type)]); }
/** * @param StoreVideoRequest $request * @param $file_hash */ private function extractVideoFrame(StoreVideoRequest $request, $file_hash) { $ffmpeg = FFMpeg::create(); $video = $ffmpeg->open(base_path() . '/files/video/' . $file_hash . '.' . $request->file('video')->getClientOriginalExtension()); $frame = $video->frame(TimeCode::fromSeconds(5)); $frame->save(base_path() . '/files/video/' . $file_hash . '.jpg'); }