Пример #1
0
 /**
  * Get meal recomendation for user. Returns the most eaten meal that doesn't
  * match any of last week meals (by default), or the least eaten dish if all match
  * @param $skipMeals Number of (last) meals to not repeat
  */
 public function getRecommendation(User $user, $unrepeatdMeals = 14)
 {
     if (!is_int($unrepeatdMeals)) {
         throw new ErrorException("Argument {$unrepeatdMeals} must be of type integer.");
     }
     $meals = $this->getLastMeals($user);
     $lastMeals = array_slice($meals->toArray(), count($meals) - $unrepeatdMeals);
     if (count($lastMeals)) {
         $sortedMeals = $this->sortMeals($meals->toArray());
         foreach ($sortedMeals as $dishId => $mealCount) {
             $exists = false;
             foreach ($lastMeals as $key => $lastDishId) {
                 if ($dishId === (int) $lastDishId) {
                     $exists = true;
                 }
             }
             if ($exists === false) {
                 return Dish::find($dishId);
             }
         }
         // If repeated, suggest the least eaten dish
         end($sortedMeals);
         return Dish::find(key($sortedMeals));
     } else {
         return null;
     }
 }
Пример #2
0
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $data = $request->only('name', 'description', 'price');
     try {
         $dish = Dish::find($id);
         $dish->update($data);
         return $dish;
     } catch (Exception $e) {
         return $e;
     }
 }
Пример #3
0
 public function postUpdate(Request $request, $id)
 {
     $validator = Validator::make($request->all(), ['name' => 'required|min:3|max:255', 'calories' => 'digits_between:1,4']);
     if ($validator->fails()) {
         return redirect()->route('dish::update_get', ['id' => $id])->withErrors($validator)->withInput();
     } else {
         $dish = Dish::find($id);
         $dish->name = $request->input('name');
         $dish->calories = $request->input('calories', null);
         $dish->save();
         $this->setFlashMessage('success', 'Dish updated.');
     }
     return redirect()->route('dish::list');
 }
Пример #4
0
 public function updateDish(Request $request)
 {
     $name = \StringHelper::filterString($request->input('name'));
     $price = \StringHelper::filterString($request->input('price'));
     $description = \StringHelper::filterString($request->input('description'));
     $destinationPath = 'uploads/';
     // upload path
     $dish_id = \StringHelper::filterString($request->input('dish_id'));
     if ($name != "" && $price != "") {
         $dish = Dish::find($dish_id);
         $dish->dish_name = $name;
         $dish->dish_price = $price;
         $dish->dish_description = $description;
         $dish->active = 1;
     }
     if (Input::file('image')) {
         $extension = Input::file('image')->getClientOriginalExtension();
         // getting image extension
         $fileName = rand(11111, 99999) . '.' . $extension;
         // renameing image
         Input::file('image')->move($destinationPath, $fileName);
         // uploading file to given path
         $image = $destinationPath . $fileName;
         $dish->dish_image = $image;
     }
     $dish->save();
     return Redirect::back()->with('message', 'Success');
 }
Пример #5
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function destroy($id)
 {
     $dish = Dish::find($id);
     $dish->delete();
     return redirect('dishes');
 }