/**
  * 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');
     }
 }
Пример #2
0
 /**
  * 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]);
 }
Пример #3
0
 /**
  * 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!');
     }
 }