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 bf2861a67a389e5c622f9e6299ea08b60f883650..949c77d9592170627dd5313ac8a02f8f54ccc69e 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 @@ -59,7 +59,11 @@ public class FridgeController { */ @PostMapping("/group/product") public ResponseEntity<Product> addProductToFridge(@RequestBody FridgeProductRequest request) { - return fridgeService.addProductToFridge(request).map(ResponseEntity::ok).orElseGet(()-> ResponseEntity.notFound().build()); + try { + return fridgeService.addProductToFridge(request).map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.notFound().build()); + } catch (IllegalArgumentException e) { + return ResponseEntity.badRequest().build(); + } } @PutMapping("/group/product") 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 243722b7d06706e2162d3daa7f3c6144b1e1645f..71d13e004a416492de41e3bb081b1edc4250c5b5 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 @@ -70,6 +70,10 @@ public class FridgeService { * @return the product that was added to the fridge */ public Optional<Product> addProductToFridge(FridgeProductRequest fridgeProductRequest) { + if (fridgeProductRequest.amount() < 0 || fridgeProductRequest.days() < 0) { + throw new IllegalArgumentException("Amount and days must be non-negative values."); + } + Optional<Product> product = productService.getProductById(fridgeProductRequest.ean()); Optional<Fridge> fridge = fridgeRepository.findByGroupGroupId(fridgeProductRequest.groupId()); double price = 10.0;