public function put($app, $id, $data)
 {
     $code = null;
     $beerService = $app[BeerServiceProvider::BEER_SERVICE]();
     $beer = $beerService()->find($id);
     if (!$beer) {
         return ['data' => ['data' => 'Essa cerveja existe?'], 'code' => 404];
     }
     unset($data['created']);
     $breweryService = $app[BreweryServiceProvider::BREWERY_SERVICE]();
     $brewery = $breweryService()->find($data['brewery']['id']);
     $beer = new BeerEntity();
     $beer->setFromArray($data);
     $beer->addBrewery($brewery);
     $response = [];
     $errors = $app['validator']->validate($beer);
     if (count($errors) > 0) {
         foreach ($errors as $error) {
             $response[] = ['data' => $error->getMessage()];
         }
         return ['data' => $response, 'code' => 422];
     }
     try {
         $data = $beerService->update($beer);
     } catch (Exception $e) {
         $code = 500;
         $data = $e->getMessage();
     }
     return ['data' => $data, 'code' => $code ? $code : 200];
 }
 public function put($app, $id, $request)
 {
     $data = $request->request->all();
     unset($data['created']);
     $repo = $app[BeerServiceProvider::BEER_SERVICE]();
     $beer = $repo()->find($id);
     if (!$beer) {
         return $app->json(['message' => 'Cerveja não encontrada'], 404);
     }
     $repo_brewery = $app[BreweryServiceProvider::BREWERY_SERVICE]();
     $brewery = $repo_brewery()->find($data['brewery']['id']);
     $beer = new BeerEntity();
     $beer->setFromArray($data);
     $beer->addBrewery($brewery);
     $data = $repo->update($beer);
     return ['data' => $data, 'code' => 200];
 }