public function store(Request $request)
 {
     $validation = Validator::make($request->all(), ['title' => 'unique:dvds,title', 'label_id' => 'required', 'sound_id' => 'required', 'genre_id' => 'required', 'rating_id' => 'required', 'format_id' => 'required']);
     if (!$validation->passes()) {
         return Response::json(['errors' => ['title' => $validation->errors()->get('title'), 'label_id' => $validation->errors()->get('label_id'), 'sound_id' => $validation->errors()->get('sound_id'), 'genre_id' => $validation->errors()->get('genre_id'), 'rating_id' => $validation->errors()->get('rating_id'), 'format_id' => $validation->errors()->get('format_id')]], 422);
     }
     $dvd = new DVD();
     $dvd->title = $request->input('title');
     $dvd->label_id = $request->input('label_id');
     $dvd->sound_id = $request->input('sound_id');
     $dvd->genre_id = $request->input('genre_id');
     $dvd->rating_id = $request->input('rating_id');
     $dvd->format_id = $request->input('format_id');
     $dvd->save();
     return ['dvd' => $dvd];
 }
 public function createDvd(Request $request)
 {
     $genre_id = $request->input('genre_id');
     $rating_id = $request->input('rating_id');
     $award = $request->input('award');
     $title = $request->input('title');
     $validator = Validator::make($request->all(), ['title' => 'required|unique:dvds']);
     if ($validator->fails()) {
         return response()->json(['errors' => $validator->errors()], 422);
     }
     $dvd = new DVD();
     $dvd->title = $title;
     $dvd->award = $award;
     $dvd->genre_id = $genre_id;
     $dvd->rating_id = $rating_id;
     $dvd->save();
     $createdDVD = DVD::find($dvd->id);
     return json_encode(array('dvd' => $createdDVD));
 }
Exemplo n.º 3
0
 /**
  * Updates the dvd record in the database
  * @param  array  $input
  * @param App\Models\DVDInfo $dvd
  */
 public function update(DVDInfo $dvd, array $input)
 {
     $dvd->fill($input);
     $dvd->save();
     if (!$dvd->dvds->isEmpty()) {
         $price = Price::firstOrCreate(['price_whole' => $input['price_whole'], 'price_cents' => $input['price_cents'], 'late_fee_whole' => $input['late_fee_whole'], 'late_fee_cents' => $input['late_fee_cents'], 'points' => $input['points']]);
         $dvd->dvds()->update(['price_id' => $price->id, 'age_restriction' => $input['age_restriction']]);
     }
     $stockChange = $dvd->totalStock() - $input['stock'];
     // Reduce stock
     if ($stockChange > 0) {
         $unrented = $dvd->getUnrented();
         $unrented = $unrented->take($stockChange);
         $ids = array_keys($unrented->getDictionary());
         DVD::destroy($ids);
     }
     //  Increase stock
     if ($stockChange < 0) {
         $newDvds = [];
         while ($stockChange < 0) {
             array_push($newDvds, new DVD(['price_id' => $price->id, 'age_restriction' => $input['age_restriction']]));
             $stockChange += 1;
         }
         $dvd->dvds()->saveMany($newDvds);
     }
 }
 public function genresdvds($param)
 {
     $dvds = DVD::with('genre', 'sound', 'label', 'format', 'rating')->where('genre_id', $param)->get();
     if (isset($dvds[0])) {
         $genre = $dvds[0]->genre->genre_name;
     } else {
         $genre = "Invalid Genre";
     }
     return view('results', ['dvds' => $dvds, 'searchTerm' => "Genre: " . $genre]);
 }
 public function genreDVDs(Request $request, $genre_id)
 {
     $dvds = DVD::with('rating', 'genre', 'label')->where('genre_id', "{$genre_id}")->get();
     $genre_name = '';
     $genre = Genre::where('id', "{$genre_id}")->first();
     if (!empty($genre)) {
         $genre_name = $genre->genre_name;
     }
     return view('genre_results', ['dvds' => $dvds, 'genre_name' => $genre_name]);
     return view('genre_results');
 }