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 3ec4537a4e897e0ba791c9c6a7a36d126cbb3ff7..c77f21643b9cbce12884ada655d5857caf9a48e4 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 @@ -35,6 +35,7 @@ public class FridgeController { .orElseGet(() -> ResponseEntity.notFound().build()); } + /** * Gets the fridge by its fridge id * @param fridgeId the id of the fridge @@ -59,6 +60,10 @@ public class FridgeController { return fridgeService.addProductToFridge(request).map(ResponseEntity::ok).orElseGet(()-> ResponseEntity.notFound().build()); } + @PutMapping("/group/product") + public ResponseEntity<Object> updateProductInFridge(@RequestBody FridgeProductRequest request) { + return fridgeService.updateProductInFridge(request).map(ResponseEntity::ok).orElseGet(()-> ResponseEntity.notFound().build()); + } @DeleteMapping("/group/delete/product/{fridgeProductId}/{amount}") public ResponseEntity<?> deleteAmountFridgeProduct(@PathVariable("fridgeProductId") long fridgeProductId, diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/dto/request/FridgeProductRequest.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/dto/request/FridgeProductRequest.java index 9e5ad480fc9db50c8ef4ef46e2b35c48b9f1cd80..bbe5b8717bb183192619d446f01a6d6ab502974e 100644 --- a/src/main/java/ntnu/idatt2016/v233/SmartMat/dto/request/FridgeProductRequest.java +++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/dto/request/FridgeProductRequest.java @@ -5,5 +5,5 @@ package ntnu.idatt2016.v233.SmartMat.dto.request; * @param groupId the id of the group * @param productId the id of the product */ -public record FridgeProductRequest(long groupId, long ean, int amount, int days) { +public record FridgeProductRequest(long fridgeProductId, long groupId, long ean, int amount, int days) { } 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 3665bc7e7ea56fc47520c7e21f48b4a0ffd6e138..aa8edf2a8bdec625b10b3fbcec4561e048761aaa 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 @@ -10,6 +10,8 @@ import ntnu.idatt2016.v233.SmartMat.entity.product.Product; import ntnu.idatt2016.v233.SmartMat.repository.group.GroupRepository; import ntnu.idatt2016.v233.SmartMat.repository.product.FridgeProductAssoRepo; import ntnu.idatt2016.v233.SmartMat.service.product.ProductService; + +import org.springframework.context.annotation.aspectj.EnableSpringConfigured; import org.springframework.stereotype.Service; import java.time.LocalDate; @@ -77,6 +79,25 @@ public class FridgeService { return Optional.of(product); } + + public Optional<Object> updateProductInFridge(FridgeProductRequest request) { + Optional<FridgeProductAsso> fridgeProductAsso = fridgeProductAssoRepo.findById(request.fridgeProductId()); + if (fridgeProductAsso.isEmpty()) return Optional.empty(); + + Integer amount = request.amount(); + Integer days = request.days(); + + if (amount != null) fridgeProductAsso.get() + .setAmount(request.amount()); + + if (days != null) fridgeProductAsso.get() + .setDaysToExpiration(request.days()); + + fridgeProductAssoRepo.save(fridgeProductAsso.get()); + + return Optional.of(fridgeProductAsso); + } + /** * Remove a product from the fridge of a group