From b666285f8cf54dca04b1048a3b97daae9bbcfe22 Mon Sep 17 00:00:00 2001 From: Stian Lyng <stianlyng@protonmail.com> Date: Thu, 27 Apr 2023 15:10:20 +0200 Subject: [PATCH] update fridge product --- .../controller/group/FridgeController.java | 5 +++++ .../dto/request/FridgeProductRequest.java | 2 +- .../SmartMat/service/group/FridgeService.java | 21 +++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) 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 3ec4537a..c77f2164 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 9e5ad480..bbe5b871 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 3665bc7e..aa8edf2a 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 -- GitLab