/**
  *  Update a recipe. Processes the input (post request)
  *
  * @param Recipe $recipe
  * @param RecipeRequest $request
  * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector*
  */
 public function update(Recipe $recipe, RecipeRequest $request)
 {
     $recipe->update($request->all());
     $this->syncTags($recipe, $request->input('tag_list'));
     flash()->success('Good job!', 'Your recipe has been successfully edited.');
     return redirect('recipes');
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     try {
         $allReqInf = $request->all();
         //validate resource exists
         if (isset($allReqInf['id'])) {
             $resultJson = $this->show($allReqInf['id']);
             $resultArr = json_decode($resultJson->content(), 'true');
             if (array_key_exists('error', $resultArr)) {
                 throw new \Exception('Error reading information');
             }
             if (count($resultArr['recipe']) == 0) {
                 throw new \Exception('Resource does not exist');
             }
         } else {
             throw new \Exception('Resource does not exist');
         }
         //update recipe
         $recipe = new Recipe();
         $lstFields = $recipe::getFieldsModel();
         $arrInfFields = [];
         foreach ($lstFields as $field) {
             if (array_key_exists($field, $allReqInf)) {
                 $arrInfFields[$field] = $request->input($field);
             }
         }
         $result = $recipe->update($arrInfFields);
         $statusCode = 200;
         $response = ["result" => $result, '_token' => csrf_token()];
     } catch (\Exception $e) {
         $response = ["error" => $e->getMessage()];
         $statusCode = 404;
     } finally {
         return Response::json($response, $statusCode);
     }
 }