update calories
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-03-18 19:02:32 +07:00
parent 823786c3ea
commit bce61e698a
3 changed files with 28 additions and 9 deletions
+19 -7
View File
@@ -6,20 +6,32 @@ import (
)
var (
caloriesMap = map[string]int{
"чай": 79,
"яблоко": 100,
productsMap = map[string]struct {
caloriesIn100G int
awgWeightG int
}{
"чай": {caloriesIn100G: 65, awgWeightG: 200},
"яблоко": {caloriesIn100G: 52, awgWeightG: 242},
"хлеб": {caloriesIn100G: 245, awgWeightG: 35},
}
)
func CalcCalories(text string) (int, error) {
count, ok := caloriesMap[strings.ToLower(text)]
product, ok := productsMap[strings.ToLower(text)]
if ok {
return count, nil
return product.caloriesIn100G * product.awgWeightG / 100, nil
}
arr := strings.Split(text, " ")
if len(arr) == 2 {
coun1, err := strconv.Atoi(arr[0])
product, ok := productsMap[strings.ToLower(arr[0])]
if ok {
count, err := strconv.Atoi(arr[1])
if err != nil {
return 0, nil
}
return product.caloriesIn100G * count / 100, nil
}
count1, err := strconv.Atoi(arr[0])
if err != nil {
return 0, nil
}
@@ -27,7 +39,7 @@ func CalcCalories(text string) (int, error) {
if err != nil {
return 0, nil
}
return coun1 * count2 / 100, nil
return count1 * count2 / 100, nil
}
count, err := strconv.Atoi(text)
if err != nil {