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 9e6b1e31b141a0a31f242a63d443f6789019fd6b..740c67765eca24f102908f88edb0d79b57dae7a0 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 @@ -58,21 +58,8 @@ public class FridgeController { * @return success if the product was added, bad request if the product was already in the fridge, or not found if the group or product doesn't exist */ @PostMapping("/group/product") - public ResponseEntity<String> addProductToFridge(@RequestBody FridgeProductRequest request) { - long groupId = request.groupId(); - long productId = request.productId(); - - Optional<Fridge> fridgeOpt = fridgeService.getFridgeByGroupId(groupId); - if (fridgeOpt.isEmpty()) { - return ResponseEntity.notFound().build(); - } - - try { - fridgeService.addProductToFridge(groupId, productId, request.amount(), request.days()); - return ResponseEntity.ok("Success"); - } catch (Exception e) { - return ResponseEntity.status(500).body("Internal server error"); - } + public ResponseEntity<Object> addProductToFridge(@RequestBody FridgeProductRequest request) { + return fridgeService.addProductToFridge(request).map(ResponseEntity::ok).orElseGet(()-> ResponseEntity.notFound().build()); } diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeProductAssoService.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeProductAssoService.java index f6ade4c976ffa25ef7cf362ae9f35df5977d066c..d3f95409a169de5334d495294822f3d94d4d5591 100644 --- a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeProductAssoService.java +++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/group/FridgeProductAssoService.java @@ -1,6 +1,7 @@ package ntnu.idatt2016.v233.SmartMat.service.group; import lombok.AllArgsConstructor; +import ntnu.idatt2016.v233.SmartMat.dto.request.FridgeProductRequest; import ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct.FridgeProductAsso; import ntnu.idatt2016.v233.SmartMat.entity.group.Fridge; import ntnu.idatt2016.v233.SmartMat.entity.product.Product; @@ -10,6 +11,7 @@ import ntnu.idatt2016.v233.SmartMat.repository.group.FridgeRepository; import org.springframework.stereotype.Service; import java.sql.Date; +import java.util.Optional; @Service @AllArgsConstructor @@ -21,6 +23,8 @@ public class FridgeProductAssoService { ProductRepository productRepository; + + /** * Creates a fridge product association * the FridgeProductAssosiation object needs to be added to the fridge and product @@ -52,4 +56,5 @@ public class FridgeProductAssoService { return true; } + } 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 4256e0efd207fb868c1f49b5a0f32e73bce30668..3403a36c0c7abb157c7f0a8e488c1fccd53634cc 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 @@ -1,6 +1,7 @@ package ntnu.idatt2016.v233.SmartMat.service.group; import lombok.AllArgsConstructor; +import ntnu.idatt2016.v233.SmartMat.dto.request.FridgeProductRequest; import ntnu.idatt2016.v233.SmartMat.entity.fridgeProduct.FridgeProductAsso; import ntnu.idatt2016.v233.SmartMat.entity.group.Fridge; import ntnu.idatt2016.v233.SmartMat.entity.group.Group; @@ -11,6 +12,7 @@ import ntnu.idatt2016.v233.SmartMat.repository.group.GroupRepository; import ntnu.idatt2016.v233.SmartMat.service.product.ProductService; import org.springframework.stereotype.Service; +import java.nio.channels.FileChannel; import java.sql.Date; import java.time.LocalDate; import java.util.Optional; @@ -64,15 +66,13 @@ public class FridgeService { * @param ean the ean of the product * @return true if the product was added */ - public Optional<Object> addProductToFridge(long groupId, long ean, int amount, int days) { - Optional<Product> product = productService.getProductById(ean); - Fridge fridge = fridgeRepository.findByGroupGroupId(groupId).orElseThrow(() -> new IllegalArgumentException("Fridge does not exist")); + public Optional<Object> addProductToFridge(FridgeProductRequest fridgeProductRequest) { + Optional<Product> product = productService.getProductById(fridgeProductRequest.productId()); + Optional<Fridge> fridge = fridgeRepository.findByGroupGroupId(fridgeProductRequest.groupId()); + if(product.isEmpty() || fridge.isEmpty()) return Optional.empty(); + + return Optional.of(fridgeProductAssoService.createFridgeProductAsso(fridge.get(), product.get(), fridgeProductRequest.amount(), fridgeProductRequest.days())); - if (product.isPresent()) { - return Optional.of(fridgeProductAssoService.createFridgeProductAsso(fridge, product.get(),amount,days)); - } else { - return Optional.empty(); - } } /**