diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeController.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeController.java index fb012aae049f3db7aadc4948e3fddf0ae7797e8e..6e6ce1e9aaa065dc0e066b664933686eb301bb9d 100644 --- a/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeController.java +++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/group/FridgeController.java @@ -51,10 +51,15 @@ public class FridgeController { } catch (Exception e) { return ResponseEntity.notFound().build(); } - if (fridgeService.addProductToFridge(groupId, productId)) { - return ResponseEntity.ok("Success"); + + try { + if (fridgeService.addProductToFridge(groupId, productId)) { + return ResponseEntity.ok("Success"); + } + return ResponseEntity.badRequest().body("Product already exists in the fridge"); + } catch (Exception e) { + return ResponseEntity.status(500).body("Internal server error"); } - return ResponseEntity.badRequest().build(); } /** @@ -73,10 +78,15 @@ public class FridgeController { } catch (Exception e) { return ResponseEntity.notFound().build(); } - if (fridgeService.removeProductFromFridge(groupId, productId)) { - return ResponseEntity.ok("Success"); + + try { + if (fridgeService.removeProductFromFridge(groupId, productId)) { + return ResponseEntity.ok("Success"); + } + return ResponseEntity.badRequest().body("Product not found in the fridge"); + } catch (Exception e) { + return ResponseEntity.status(500).body("Internal server error"); } - return ResponseEntity.badRequest().build(); } } diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeService.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeService.java index 3ac7943626711aefedd436633b10d8484c153bad..c36c80847d01bace953ebdacab1494ae1a1db874 100644 --- a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeService.java +++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeService.java @@ -44,8 +44,13 @@ public class FridgeService { public boolean addProductToFridge(long groupId, long ean) { Optional<Product> product = productService.getProductById(ean); Fridge fridge = fridgeRepository.findByGroupId(groupId).orElseThrow(() -> new IllegalArgumentException("Fridge does not exist")); - if(product.isPresent()) { - fridge.getProducts().add(product.get()); + + if (product.isPresent()) { + Product productToAdd = product.get(); + if (fridge.getProducts().contains(productToAdd)) { + return false; + } + fridge.getProducts().add(productToAdd); fridgeRepository.save(fridge); return true; } else { @@ -64,8 +69,13 @@ public class FridgeService { public boolean removeProductFromFridge(long groupId, long ean) { Optional<Product> product = productService.getProductById(ean); Fridge fridge = fridgeRepository.findByGroupId(groupId).orElseThrow(() -> new IllegalArgumentException("Fridge does not exist")); + if (product.isPresent()) { - fridge.getProducts().remove(product.get()); + Product productToRemove = product.get(); + if (!fridge.getProducts().contains(productToRemove)) { + return false; + } + fridge.getProducts().remove(productToRemove); fridgeRepository.save(fridge); return true; } else {