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 eaefc5cbda60b5b6d7a5432303ec32f90a097fe4..e40460068d3b9f0ea2d13faa18697f9737e10297 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 @@ -80,15 +80,10 @@ public class FridgeController { @DeleteMapping("/group/delete/product/{fridgeProductId}/{amount}") public ResponseEntity<?> deleteAmountFridgeProduct(@PathVariable("fridgeProductId") long fridgeProductId, @PathVariable("amount") String amountStr, Authentication authentication) { - Optional<Fridge> fridge = fridgeService.getFridgeByFridgeId(fridgeProductId); - if (fridge.isEmpty()) { - return ResponseEntity.status(404).body("Fridge not found"); - } - if (fridge.get().getGroup().getUser().stream().map(user -> user.getUser().getUsername()) - .noneMatch(username -> username.equals(authentication.getName())) - && authentication.getAuthorities().contains(new SimpleGrantedAuthority(Authority.ADMIN.name()))){ + if (!fridgeService.isUserInGroupWithFridgeProduct( authentication.getName(), fridgeProductId) + && !authentication.getAuthorities().contains(new SimpleGrantedAuthority(Authority.ADMIN.name()))){ return ResponseEntity.status(403).body("You are not a member of this group"); } 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 71d13e004a416492de41e3bb081b1edc4250c5b5..74a1095bec046e56027dab6ae14a629adad8f44b 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 @@ -212,15 +212,15 @@ public class FridgeService { /** - * Delete all products in a fridge - * @param fridgeId the id of the fridge - * @return true if the fridge was deleted - * - public boolean deleteAllProductsInFridge(long fridgeId) { - Optional<Fridge> fridge = fridgeRepository.findById(fridgeId); - if(fridge.isEmpty()) return false; - fridgeProductAssoService.deleteAllFridgeProducts(fridgeId); - return true; + * Get all the fridge products of a group + * @param username the username of the user + * @param fridgeProductId the id of the fridge product + * @return true if the user is in the group of the fridge product + */ + public boolean isUserInGroupWithFridgeProduct(String username, long fridgeProductId) { + Optional<Fridge> fridge = fridgeProductAssoRepo.findById(fridgeProductId) + .map(FridgeProductAsso::getFridgeId); + return fridge.map(value -> value.getGroup().getUser().stream() + .anyMatch(user -> user.getUser().getUsername().equals(username))).orElse(false); } - */ }