/** * Store a newly created resource in storage. * * @return Response */ public function store(Request $request) { $title = strtolower($request->get('title')); $user_id = $request->user()->id; if (!empty($title)) { $serial = Serial::where('title', $title)->get(); // Сериал с таким названием уже был создан ранее if ($serial->count()) { $catalog = Catalog::where(['user_id' => $user_id, 'serial_id' => $serial->first()->id])->get(); // У пользователя уже есть в списке этот сериал if ($catalog->count()) { return response(['message' => 'У Вас уже есть сериал с таким названием'], 422)->header('Content-Type', 'application/json'); } else { // Иначе добавляем пользователю в каталог сериал $catalog = new Catalog(); $catalog->user_id = $user_id; $catalog->serial_id = $serial->first()->id; $catalog->title = $title; $catalog->season = 0; $catalog->serie = 0; $catalog->save(); return response()->json($catalog->toArray()); } // Такого сериала еще не создано, поэтому создаем запись, // и добавляем в каталог пользователя } else { $new_serial = new Serial(); $new_serial->title = $title; $new_serial->user_id = $user_id; $new_serial->save(); $catalog = new Catalog(); $catalog->user_id = $user_id; $catalog->serial_id = $new_serial->id; $catalog->title = $title; $catalog->season = 0; $catalog->serie = 0; $catalog->save(); return response()->json($catalog->toArray()); } return $serial; } else { return response(['message' => 'Поле не может быть пустым'], 422)->header('Content-Type', 'application/json'); } }
/** * Show selial and seasons of serial. * * @return Response */ public function getSerialBySlug($slug) { $serial = DB::table('serials')->select()->where([['slug', '=', $slug], ['is_active', '=', '1']])->get(); if (isset($serial[0])) { $seasons = Serial::find($serial[0]->id)->seasons()->orderBy('number')->get(); $serial = $serial[0]; } else { abort(404); } $idSesons = []; if (isset($seasons)) { foreach ($seasons as $seson) { $idSesons[] = $seson->id; } } $epizodes = DB::table('epizodes')->whereIn('season_id', $idSesons)->orderBy('number')->get(); $arrayEpizodes = []; foreach ($epizodes as $epizod) { $arrayEpizodes[$epizod->season_id][] = $epizod; } return view('serial.serial', ['serial' => $serial, 'seasons' => $seasons, 'epizodes' => $arrayEpizodes]); }
/** * Delete serial * @param $slug * @return \Illuminate\Http\RedirectResponse * @throws \Exception */ public function deleteSerial($slug) { $serial = Serial::findBySlugOrFail($slug); if (isset($serial) && $serial->user_id == Auth::user()->id) { if ($serial->delete()) { return redirect('/show/serial')->with('message', 'Serial delete!'); } } else { return redirect('/show/serial')->with('message', 'Serial no delete!'); } }