From e04c1b6c3f9b68204a1b9210b3b43a095b27395c Mon Sep 17 00:00:00 2001 From: Anders Austlid <andemau@ntnu.no> Date: Tue, 25 Apr 2023 12:56:22 +0200 Subject: [PATCH] Fridge controller endpoints added --- .../controller/group/FridgeController.java | 22 ++++++++++++++----- .../SmartMat/service/group/FridgeService.java | 16 +++++++++++--- 2 files changed, 29 insertions(+), 9 deletions(-) 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 fb012aae..6e6ce1e9 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 3ac79436..c36c8084 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 { -- GitLab