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']); } + }