RecipesService = new RecipesService(); } protected $RecipesService; public function AddNotFulfilledProductsToShoppingList(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { $requestBody = $request->getParsedBody(); $excludedProductIds = null; if ($requestBody !== null && array_key_exists('excludedProductIds', $requestBody)) { $excludedProductIds = $requestBody['excludedProductIds']; } $this->RecipesService->AddNotFulfilledProductsToShoppingList($args['recipeId'], $excludedProductIds); return $this->EmptyApiResponse($response); } public function ConsumeRecipe(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { try { $this->RecipesService->ConsumeRecipe($args['recipeId']); return $this->EmptyApiResponse($response); } catch (\Exception $ex) { return $this->GenericErrorResponse($response, $ex->getMessage()); } } public function GetRecipeFulfillment(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { try { if(!isset($args['recipeId'])) { return $this->ApiResponse($this->RecipesService->GetRecipesResolved()); } $recipeResolved = FindObjectInArrayByPropertyValue($this->RecipesService->GetRecipesResolved(), 'recipe_id', $args['recipeId']); if(!$recipeResolved) { throw new \Exception('Recipe does not exist'); } else { return $this->ApiResponse($recipeResolved); } } catch (\Exception $ex) { return $this->GenericErrorResponse($response, $ex->getMessage()); } } }