From 4c1f2db00aedbb6733e12ff6a057175a92be289b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Bu=C3=9Fmann?= Date: Wed, 13 Jul 2022 15:50:07 +0200 Subject: [PATCH 1/3] added functionality to spoonacular lib to convert units --- .../main/spoonaccular/AmountConversion.java | 34 ++++++ .../amount_conversion/ConvertedAmount.java | 110 ++++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 backend/src/main/spoonaccular/AmountConversion.java create mode 100644 backend/src/main/spoonaccular/models/amount_conversion/ConvertedAmount.java diff --git a/backend/src/main/spoonaccular/AmountConversion.java b/backend/src/main/spoonaccular/AmountConversion.java new file mode 100644 index 0000000..ae2593a --- /dev/null +++ b/backend/src/main/spoonaccular/AmountConversion.java @@ -0,0 +1,34 @@ +package spoonaccular; + +import com.fasterxml.jackson.databind.ObjectMapper; +import io.github.cdimascio.dotenv.Dotenv; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import spoonaccular.models.amount_conversion.ConvertedAmount; + +import java.io.IOException; + +public class AmountConversion { + + private static final OkHttpClient client = new OkHttpClient(); + private static final Dotenv dotenv = Dotenv.configure().ignoreIfMissing().ignoreIfMalformed().load(); + + private AmountConversion(){ + } + + public static double convertAmount(String ingrdientName, Double sourceAmount, String sourceUnit, String targetUnit) throws IOException { + Request request = APIAuthentication.addAuthHeaders( + new Request.Builder() + .url("https://" + dotenv.get("X-RapidAPI-Host") + + "recipes/convert?ingredientName=" + ingrdientName + + "&targetUnit=" + targetUnit + + "&sourceUnit=" + sourceUnit + + "&sourceAmount=" + sourceAmount) + ).build(); + Response response = client.newCall(request).execute(); + String responseString = response.body().string(); + return new ObjectMapper().readValue(responseString, ConvertedAmount.class).getTargetAmount(); + } + +} diff --git a/backend/src/main/spoonaccular/models/amount_conversion/ConvertedAmount.java b/backend/src/main/spoonaccular/models/amount_conversion/ConvertedAmount.java new file mode 100644 index 0000000..743afa2 --- /dev/null +++ b/backend/src/main/spoonaccular/models/amount_conversion/ConvertedAmount.java @@ -0,0 +1,110 @@ +package spoonaccular.models.amount_conversion; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "sourceAmount", + "sourceUnit", + "targetAmount", + "targetUnit", + "answer", + "type" +}) +@Generated("jsonschema2pojo") +public class ConvertedAmount { + + @JsonProperty("sourceAmount") + private Double sourceAmount; + @JsonProperty("sourceUnit") + private String sourceUnit; + @JsonProperty("targetAmount") + private Double targetAmount; + @JsonProperty("targetUnit") + private String targetUnit; + @JsonProperty("answer") + private String answer; + @JsonProperty("type") + private String type; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + @JsonProperty("sourceAmount") + public Double getSourceAmount() { + return sourceAmount; + } + + @JsonProperty("sourceAmount") + public void setSourceAmount(Double sourceAmount) { + this.sourceAmount = sourceAmount; + } + + @JsonProperty("sourceUnit") + public String getSourceUnit() { + return sourceUnit; + } + + @JsonProperty("sourceUnit") + public void setSourceUnit(String sourceUnit) { + this.sourceUnit = sourceUnit; + } + + @JsonProperty("targetAmount") + public Double getTargetAmount() { + return targetAmount; + } + + @JsonProperty("targetAmount") + public void setTargetAmount(Double targetAmount) { + this.targetAmount = targetAmount; + } + + @JsonProperty("targetUnit") + public String getTargetUnit() { + return targetUnit; + } + + @JsonProperty("targetUnit") + public void setTargetUnit(String targetUnit) { + this.targetUnit = targetUnit; + } + + @JsonProperty("answer") + public String getAnswer() { + return answer; + } + + @JsonProperty("answer") + public void setAnswer(String answer) { + this.answer = answer; + } + + @JsonProperty("type") + public String getType() { + return type; + } + + @JsonProperty("type") + public void setType(String type) { + this.type = type; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} \ No newline at end of file From 22b138696c348677968ee7e7919a5695c9c08f78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Bu=C3=9Fmann?= Date: Thu, 14 Jul 2022 00:19:20 +0200 Subject: [PATCH 2/3] [WIP] BROKEN - trying to remove the used ingredients automagically --- .../main/spoonaccular/RecipeInformation.java | 13 ++++ .../models/ingredients_by_id/Amount.java | 59 +++++++++++++++ .../models/ingredients_by_id/Ingredient.java | 72 +++++++++++++++++++ .../models/ingredients_by_id/Metric.java | 59 +++++++++++++++ .../models/ingredients_by_id/Us.java | 59 +++++++++++++++ .../controller/IngredientController.java | 54 ++++++++++++++ backend/src/main/whattocook/models/Item.java | 4 +- 7 files changed, 318 insertions(+), 2 deletions(-) create mode 100644 backend/src/main/spoonaccular/models/ingredients_by_id/Amount.java create mode 100644 backend/src/main/spoonaccular/models/ingredients_by_id/Ingredient.java create mode 100644 backend/src/main/spoonaccular/models/ingredients_by_id/Metric.java create mode 100644 backend/src/main/spoonaccular/models/ingredients_by_id/Us.java create mode 100644 backend/src/main/whattocook/controller/IngredientController.java diff --git a/backend/src/main/spoonaccular/RecipeInformation.java b/backend/src/main/spoonaccular/RecipeInformation.java index 186ad77..5cae882 100644 --- a/backend/src/main/spoonaccular/RecipeInformation.java +++ b/backend/src/main/spoonaccular/RecipeInformation.java @@ -6,7 +6,10 @@ import io.github.cdimascio.dotenv.Dotenv; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; +import org.json.JSONException; +import org.json.JSONObject; import org.springframework.stereotype.Component; +import spoonaccular.models.ingredients_by_id.Ingredient; import spoonaccular.models.recipe_by_ingredient.ExtendedRecipeByIngredient; import spoonaccular.models.recipe_by_ingredient.RecipeByIngredient; import spoonaccular.models.recipe_information.Recipe; @@ -37,6 +40,16 @@ public class RecipeInformation { return new ObjectMapper().readValue(queryInformationBulk(idsString).body().string(), new TypeReference<>() {}); } + public static List getIngredientList(int recipeId) throws IOException, JSONException { + Request request = APIAuthentication.addAuthHeaders(new Request.Builder() + .url("https://" + dotenv.get("X-RapidAPI-Host") + + "/recipes/" + recipeId + "/ingredientWidget.json")) + .build(); + Response response = client.newCall(request).execute(); + JSONObject jsonObject = new JSONObject(response.body().string()); + return new ObjectMapper().readValue(jsonObject.getJSONArray("ingredients").toString(), new TypeReference<>() {}); + } + private static Response queryInformationBulk(String idsString) throws IOException { Request request = APIAuthentication.addAuthHeaders(new Request.Builder() .url("https://" + dotenv.get("X-RapidAPI-Host") + diff --git a/backend/src/main/spoonaccular/models/ingredients_by_id/Amount.java b/backend/src/main/spoonaccular/models/ingredients_by_id/Amount.java new file mode 100644 index 0000000..3a864e3 --- /dev/null +++ b/backend/src/main/spoonaccular/models/ingredients_by_id/Amount.java @@ -0,0 +1,59 @@ + +package spoonaccular.models.ingredients_by_id; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "metric", + "us" +}) +@Generated("jsonschema2pojo") +public class Amount { + + @JsonProperty("metric") + private Metric metric; + @JsonProperty("us") + private Us us; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + @JsonProperty("metric") + public Metric getMetric() { + return metric; + } + + @JsonProperty("metric") + public void setMetric(Metric metric) { + this.metric = metric; + } + + @JsonProperty("us") + public Us getUs() { + return us; + } + + @JsonProperty("us") + public void setUs(Us us) { + this.us = us; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/backend/src/main/spoonaccular/models/ingredients_by_id/Ingredient.java b/backend/src/main/spoonaccular/models/ingredients_by_id/Ingredient.java new file mode 100644 index 0000000..3033a7c --- /dev/null +++ b/backend/src/main/spoonaccular/models/ingredients_by_id/Ingredient.java @@ -0,0 +1,72 @@ + +package spoonaccular.models.ingredients_by_id; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "name", + "image", + "amount" +}) +@Generated("jsonschema2pojo") +public class Ingredient { + + @JsonProperty("name") + private String name; + @JsonProperty("image") + private String image; + @JsonProperty("amount") + private Amount amount; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + @JsonProperty("name") + public String getName() { + return name; + } + + @JsonProperty("name") + public void setName(String name) { + this.name = name; + } + + @JsonProperty("image") + public String getImage() { + return image; + } + + @JsonProperty("image") + public void setImage(String image) { + this.image = image; + } + + @JsonProperty("amount") + public Amount getAmount() { + return amount; + } + + @JsonProperty("amount") + public void setAmount(Amount amount) { + this.amount = amount; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/backend/src/main/spoonaccular/models/ingredients_by_id/Metric.java b/backend/src/main/spoonaccular/models/ingredients_by_id/Metric.java new file mode 100644 index 0000000..f7888c4 --- /dev/null +++ b/backend/src/main/spoonaccular/models/ingredients_by_id/Metric.java @@ -0,0 +1,59 @@ + +package spoonaccular.models.ingredients_by_id; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "value", + "unit" +}) +@Generated("jsonschema2pojo") +public class Metric { + + @JsonProperty("value") + private Double value; + @JsonProperty("unit") + private String unit; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + @JsonProperty("value") + public Double getValue() { + return value; + } + + @JsonProperty("value") + public void setValue(Double value) { + this.value = value; + } + + @JsonProperty("unit") + public String getUnit() { + return unit; + } + + @JsonProperty("unit") + public void setUnit(String unit) { + this.unit = unit; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/backend/src/main/spoonaccular/models/ingredients_by_id/Us.java b/backend/src/main/spoonaccular/models/ingredients_by_id/Us.java new file mode 100644 index 0000000..e125374 --- /dev/null +++ b/backend/src/main/spoonaccular/models/ingredients_by_id/Us.java @@ -0,0 +1,59 @@ + +package spoonaccular.models.ingredients_by_id; + +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Generated; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "value", + "unit" +}) +@Generated("jsonschema2pojo") +public class Us { + + @JsonProperty("value") + private Double value; + @JsonProperty("unit") + private String unit; + @JsonIgnore + private Map additionalProperties = new HashMap(); + + @JsonProperty("value") + public Double getValue() { + return value; + } + + @JsonProperty("value") + public void setValue(Double value) { + this.value = value; + } + + @JsonProperty("unit") + public String getUnit() { + return unit; + } + + @JsonProperty("unit") + public void setUnit(String unit) { + this.unit = unit; + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + @JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} diff --git a/backend/src/main/whattocook/controller/IngredientController.java b/backend/src/main/whattocook/controller/IngredientController.java new file mode 100644 index 0000000..9a5a0f6 --- /dev/null +++ b/backend/src/main/whattocook/controller/IngredientController.java @@ -0,0 +1,54 @@ +package whattocook.controller; + +import org.json.JSONException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.rest.webmvc.BasePathAwareController; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import spoonaccular.AmountConversion; +import spoonaccular.RecipeInformation; +import spoonaccular.models.ingredients_by_id.Ingredient; +import whattocook.models.Item; +import whattocook.services.ItemService; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; + +@RestController() +@BasePathAwareController() +public class IngredientController { + + @Autowired + ItemService itemService; + + @DeleteMapping("/ingredient/removeRecipeIngredients") + public void removeRecipeIngredients(@RequestParam int id) throws IOException, JSONException { + List ingredientList = RecipeInformation.getIngredientList(id); + for (Ingredient ingredient : ingredientList){ + Optional possibleItem = itemService.findByName(ingredient.getName()); + if (possibleItem.isPresent()){ + Item item = possibleItem.get(); + double newItemQuantity; + //same unit + if (item.getUnit().toString().equals(ingredient.getAmount().getMetric().getUnit())){ + newItemQuantity = item.getQuantity() - ingredient.getAmount().getMetric().getValue(); + } else { + double ingridientAmount = AmountConversion.convertAmount(ingredient.getName(), + ingredient.getAmount().getMetric().getValue(), + ingredient.getAmount().getMetric().getUnit(), + item.getUnit().toString()); + newItemQuantity = item.getQuantity() - ingridientAmount; + } + if (newItemQuantity > 0){ + item.setQuantity(newItemQuantity); + } else { + itemService.deleteById(item.getId()); + } + } + } + } + + +} diff --git a/backend/src/main/whattocook/models/Item.java b/backend/src/main/whattocook/models/Item.java index e520f36..00d2805 100644 --- a/backend/src/main/whattocook/models/Item.java +++ b/backend/src/main/whattocook/models/Item.java @@ -25,9 +25,9 @@ public class Item { private Unit unit; - private int quantity; + private double quantity; - public Item(String name, Unit unit, int quantity){ + public Item(String name, Unit unit, double quantity){ this.name = name; this.unit = unit; this.quantity = quantity; From 711a8e5c210118d92e4e55ad1d9640b253ac2327 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Bu=C3=9Fmann?= Date: Sat, 16 Jul 2022 22:20:32 +0200 Subject: [PATCH 3/3] first draft implemented Still struggling at some ingredients which deviating names --- .../main/spoonaccular/AmountConversion.java | 9 +++++++-- .../controller/IngredientController.java | 11 +++++++--- .../implementation/ItemServiceImpl.java | 5 +++++ backend/src/main/whattocook/models/Unit.java | 4 ++-- .../repositories/ItemRepository.java | 1 + .../main/whattocook/services/ItemService.java | 1 + backend/src/test/java/items/ItemTests.java | 20 +++++++++---------- build.gradle | 2 +- 8 files changed, 35 insertions(+), 18 deletions(-) diff --git a/backend/src/main/spoonaccular/AmountConversion.java b/backend/src/main/spoonaccular/AmountConversion.java index ae2593a..64ed9c8 100644 --- a/backend/src/main/spoonaccular/AmountConversion.java +++ b/backend/src/main/spoonaccular/AmountConversion.java @@ -21,14 +21,19 @@ public class AmountConversion { Request request = APIAuthentication.addAuthHeaders( new Request.Builder() .url("https://" + dotenv.get("X-RapidAPI-Host") + - "recipes/convert?ingredientName=" + ingrdientName + + "/recipes/convert?ingredientName=" + ingrdientName + "&targetUnit=" + targetUnit + "&sourceUnit=" + sourceUnit + "&sourceAmount=" + sourceAmount) ).build(); Response response = client.newCall(request).execute(); String responseString = response.body().string(); - return new ObjectMapper().readValue(responseString, ConvertedAmount.class).getTargetAmount(); + try { + return new ObjectMapper().readValue(responseString, ConvertedAmount.class).getTargetAmount(); + } catch (Exception e){ + return 0; + } + } } diff --git a/backend/src/main/whattocook/controller/IngredientController.java b/backend/src/main/whattocook/controller/IngredientController.java index 9a5a0f6..32d033e 100644 --- a/backend/src/main/whattocook/controller/IngredientController.java +++ b/backend/src/main/whattocook/controller/IngredientController.java @@ -13,6 +13,7 @@ import whattocook.models.Item; import whattocook.services.ItemService; import java.io.IOException; +import java.util.LinkedList; import java.util.List; import java.util.Optional; @@ -24,10 +25,11 @@ public class IngredientController { ItemService itemService; @DeleteMapping("/ingredient/removeRecipeIngredients") - public void removeRecipeIngredients(@RequestParam int id) throws IOException, JSONException { + public List removeRecipeIngredients(@RequestParam int id) throws IOException, JSONException { List ingredientList = RecipeInformation.getIngredientList(id); + List changedItemList = new LinkedList<>(); for (Ingredient ingredient : ingredientList){ - Optional possibleItem = itemService.findByName(ingredient.getName()); + Optional possibleItem = itemService.findByNameIgnoreCaseContaining(ingredient.getName()); if (possibleItem.isPresent()){ Item item = possibleItem.get(); double newItemQuantity; @@ -42,12 +44,15 @@ public class IngredientController { newItemQuantity = item.getQuantity() - ingridientAmount; } if (newItemQuantity > 0){ - item.setQuantity(newItemQuantity); + item.setQuantity(newItemQuantity); + itemService.save(item); } else { itemService.deleteById(item.getId()); } + changedItemList.add(item); } } + return changedItemList; } diff --git a/backend/src/main/whattocook/implementation/ItemServiceImpl.java b/backend/src/main/whattocook/implementation/ItemServiceImpl.java index 5b174b7..b9d364c 100644 --- a/backend/src/main/whattocook/implementation/ItemServiceImpl.java +++ b/backend/src/main/whattocook/implementation/ItemServiceImpl.java @@ -34,6 +34,11 @@ public class ItemServiceImpl implements ItemService { return itemRepository.findByName(name); } + @Override + public Optional findByNameIgnoreCaseContaining(String name) { + return itemRepository.findByNameIgnoreCaseContaining(name); + } + @Override public Iterable findAll() { return itemRepository.findAll(); diff --git a/backend/src/main/whattocook/models/Unit.java b/backend/src/main/whattocook/models/Unit.java index ed37377..debc25c 100644 --- a/backend/src/main/whattocook/models/Unit.java +++ b/backend/src/main/whattocook/models/Unit.java @@ -1,6 +1,6 @@ package whattocook.models; public enum Unit { - GRAMMS, - MILLILETERS + g, + ml } diff --git a/backend/src/main/whattocook/repositories/ItemRepository.java b/backend/src/main/whattocook/repositories/ItemRepository.java index d9caa8a..2bb11fc 100644 --- a/backend/src/main/whattocook/repositories/ItemRepository.java +++ b/backend/src/main/whattocook/repositories/ItemRepository.java @@ -9,4 +9,5 @@ import java.util.Optional; @Repository public interface ItemRepository extends CrudRepository { Optional findByName(String name); + Optional findByNameIgnoreCaseContaining(String name); } diff --git a/backend/src/main/whattocook/services/ItemService.java b/backend/src/main/whattocook/services/ItemService.java index 5db566f..b1a5cbf 100644 --- a/backend/src/main/whattocook/services/ItemService.java +++ b/backend/src/main/whattocook/services/ItemService.java @@ -9,5 +9,6 @@ public interface ItemService { void deleteById(Long id); Optional findById(long id); Optional findByName(String name); + Optional findByNameIgnoreCaseContaining(String name); Iterable findAll(); } diff --git a/backend/src/test/java/items/ItemTests.java b/backend/src/test/java/items/ItemTests.java index ff27ce7..af91a6f 100644 --- a/backend/src/test/java/items/ItemTests.java +++ b/backend/src/test/java/items/ItemTests.java @@ -29,14 +29,14 @@ final class ItemTests { @Test public void saveTest() { - Item item = new Item("kartoffel", Unit.GRAMMS, 5000); + Item item = new Item("kartoffel", Unit.g, 5000); itemRepository.save(item); assertTrue(itemRepository.existsById(item.getId())); } @Test public void findByIDTest() { - Item item = new Item("tortillias", Unit.GRAMMS, 5000); + Item item = new Item("tortillias", Unit.g, 5000); itemRepository.save(item); assertEquals(item, itemRepository.findById(item.getId()).get()); } @@ -49,7 +49,7 @@ final class ItemTests { @Test public void findByNameTest(){ - Item item = new Item("tortillias", Unit.GRAMMS, 5000); + Item item = new Item("tortillias", Unit.g, 5000); itemRepository.save(item); assertEquals(item, itemRepository.findByName(item.getName()).get()); } @@ -57,11 +57,11 @@ final class ItemTests { @Test public void findAllTest() { List savedItems = new ArrayList(); - savedItems.add( new Item("nachos", Unit.GRAMMS, 5000)); - savedItems.add( new Item("wurst", Unit.GRAMMS, 5000)); - savedItems.add( new Item("schinken", Unit.GRAMMS, 5000)); - savedItems.add( new Item("brokkoli", Unit.GRAMMS, 5000)); - savedItems.add( new Item("eiscreme", Unit.GRAMMS, 5000)); + savedItems.add( new Item("nachos", Unit.g, 5000)); + savedItems.add( new Item("wurst", Unit.g, 5000)); + savedItems.add( new Item("schinken", Unit.g, 5000)); + savedItems.add( new Item("brokkoli", Unit.g, 5000)); + savedItems.add( new Item("eiscreme", Unit.g, 5000)); itemRepository.saveAll(savedItems); @@ -71,7 +71,7 @@ final class ItemTests { @Test public void deleteTest() { - Item item = new Item("elefantenfuß", Unit.GRAMMS, 5000); + Item item = new Item("elefantenfuß", Unit.g, 5000); itemRepository.save(item); assertEquals(item, itemRepository.findById(item.getId()).get()); itemRepository.delete(item); @@ -80,7 +80,7 @@ final class ItemTests { @Test public void updateTest() { - Item item = new Item("schokoküsse", Unit.GRAMMS, 5000); + Item item = new Item("schokoküsse", Unit.g, 5000); itemRepository.save(item); long itemCount = itemRepository.count(); item.setQuantity(4574); diff --git a/build.gradle b/build.gradle index 57002e6..7409ee6 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.springframework.boot' version '2.6.7' + id 'org.springframework.boot' version '2.7.1' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' }