From 4bc8a58534dac041a458f8688c0003fa87308f79 Mon Sep 17 00:00:00 2001 From: Artur Nowakowski Date: Mon, 6 Jan 2020 17:14:54 +0100 Subject: [PATCH] [CLEAR-45] returning recipes --- api/app/Helpers/NutrictionCalculator.php | 25 ++++++++++++++++++++++ api/app/Models/Recipe.php | 11 ++++++++-- api/app/Models/RecipeProduct.php | 3 +-- api/app/Models/RecipeStep.php | 2 +- api/app/Repositories/RecipesRepository.php | 15 +++++++++---- 5 files changed, 47 insertions(+), 9 deletions(-) create mode 100644 api/app/Helpers/NutrictionCalculator.php diff --git a/api/app/Helpers/NutrictionCalculator.php b/api/app/Helpers/NutrictionCalculator.php new file mode 100644 index 0000000..3db1edf --- /dev/null +++ b/api/app/Helpers/NutrictionCalculator.php @@ -0,0 +1,25 @@ + 0, + 'carbohydrates' => 0, + 'protein' => 0, + 'fat' => 0, + ]; + + foreach($ingredients as $ingredient) + { + foreach(array_keys($nutrition) as $nutritionValue) { + $nutrition[$nutritionValue] += $ingredient['weight'] / 100 * $ingredient['product'][$nutritionValue]; + } + } + + return $nutrition; + } +} diff --git a/api/app/Models/Recipe.php b/api/app/Models/Recipe.php index fc17729..31ea75f 100644 --- a/api/app/Models/Recipe.php +++ b/api/app/Models/Recipe.php @@ -1,9 +1,9 @@ hasMany(RecipeStep::class); @@ -22,4 +24,9 @@ class Recipe extends Model { return $this->hasMany(RecipeProduct::class); } + + public function getNutritionAttribute() + { + return NutritionCalculator::calculateNutritionForRecipe($this->ingredients); + } } diff --git a/api/app/Models/RecipeProduct.php b/api/app/Models/RecipeProduct.php index 632dc10..3aede62 100644 --- a/api/app/Models/RecipeProduct.php +++ b/api/app/Models/RecipeProduct.php @@ -1,8 +1,7 @@ where('name', 'like', "%${search}%"); + } + + return $query->paginate($filters['limit']); } + }