first draft implemented

Still struggling at some ingredients which deviating names
This commit is contained in:
2022-07-16 22:20:32 +02:00
parent d9053ebaa4
commit 711a8e5c21
8 changed files with 35 additions and 18 deletions

View File

@@ -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;
}
}
}

View File

@@ -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<Item> removeRecipeIngredients(@RequestParam int id) throws IOException, JSONException {
List<Ingredient> ingredientList = RecipeInformation.getIngredientList(id);
List<Item> changedItemList = new LinkedList<>();
for (Ingredient ingredient : ingredientList){
Optional<Item> possibleItem = itemService.findByName(ingredient.getName());
Optional<Item> 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;
}

View File

@@ -34,6 +34,11 @@ public class ItemServiceImpl implements ItemService {
return itemRepository.findByName(name);
}
@Override
public Optional<Item> findByNameIgnoreCaseContaining(String name) {
return itemRepository.findByNameIgnoreCaseContaining(name);
}
@Override
public Iterable<Item> findAll() {
return itemRepository.findAll();

View File

@@ -1,6 +1,6 @@
package whattocook.models;
public enum Unit {
GRAMMS,
MILLILETERS
g,
ml
}

View File

@@ -9,4 +9,5 @@ import java.util.Optional;
@Repository
public interface ItemRepository extends CrudRepository<Item, Long> {
Optional<Item> findByName(String name);
Optional<Item> findByNameIgnoreCaseContaining(String name);
}

View File

@@ -9,5 +9,6 @@ public interface ItemService {
void deleteById(Long id);
Optional<Item> findById(long id);
Optional<Item> findByName(String name);
Optional<Item> findByNameIgnoreCaseContaining(String name);
Iterable<Item> findAll();
}

View File

@@ -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<Item> 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);