From aad3b96889ee8575e67a4ed9ab7cbaa93a00026e Mon Sep 17 00:00:00 2001 From: Tim <47184194+imgde@users.noreply.github.com> Date: Thu, 12 Jun 2025 08:29:31 +0200 Subject: [PATCH] Add OrderStatus --- .../webshop/config/ParameterConfig.java | 1 + .../webshop/controller/OrderController.java | 19 +++++++++++-------- .../de/htwsaar/webshop/model/OrderStatus.java | 9 +++++++++ .../webshop/repository/entities/Order.java | 4 ++++ 4 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 00-backend/src/main/java/de/htwsaar/webshop/model/OrderStatus.java diff --git a/00-backend/src/main/java/de/htwsaar/webshop/config/ParameterConfig.java b/00-backend/src/main/java/de/htwsaar/webshop/config/ParameterConfig.java index 3613c2b..e3587bc 100644 --- a/00-backend/src/main/java/de/htwsaar/webshop/config/ParameterConfig.java +++ b/00-backend/src/main/java/de/htwsaar/webshop/config/ParameterConfig.java @@ -11,4 +11,5 @@ public class ParameterConfig { public static final String PARAM_URI = "uri"; public static final String PARAM_RATING = "rating"; public static final String PARAM_IMAGE = "image"; + public static final String PARAM_STATUS = "status"; } diff --git a/00-backend/src/main/java/de/htwsaar/webshop/controller/OrderController.java b/00-backend/src/main/java/de/htwsaar/webshop/controller/OrderController.java index 509adb6..c086bff 100644 --- a/00-backend/src/main/java/de/htwsaar/webshop/controller/OrderController.java +++ b/00-backend/src/main/java/de/htwsaar/webshop/controller/OrderController.java @@ -1,5 +1,6 @@ package de.htwsaar.webshop.controller; +import de.htwsaar.webshop.model.OrderStatus; import de.htwsaar.webshop.repository.entities.Order; import de.htwsaar.webshop.service.OrderService; import de.htwsaar.webshop.service.ValidatorService; @@ -14,8 +15,7 @@ import java.util.List; import static de.htwsaar.webshop.config.ControllerPathConfig.ORDER_BASE; import static de.htwsaar.webshop.config.ControllerPathConfig.ORDER_GET_ALL; -import static de.htwsaar.webshop.config.ParameterConfig.PARAM_CUSTOMER_ID; -import static de.htwsaar.webshop.config.ParameterConfig.PARAM_ID; +import static de.htwsaar.webshop.config.ParameterConfig.*; import static de.htwsaar.webshop.util.LoggerUtil.logRequest; @RestController @@ -67,16 +67,19 @@ public class OrderController { return ResponseEntity.ok(saved != null); } - //TODO: check whether an order should be updatable - @RequestMapping(path = ORDER_BASE, method = RequestMethod.PUT, produces = "application/json") + @RequestMapping(path = ORDER_BASE, method = RequestMethod.PATCH, produces = "application/json") public ResponseEntity update(HttpServletRequest request, @RequestParam(value = PARAM_ID) Long orderId, - @RequestBody Order order) { + @RequestParam(value = PARAM_STATUS) OrderStatus status) { logRequest(request); - if (orderId == null || orderService.getOrderById(orderId) == null) { - return ResponseEntity.badRequest().body(false); + if (orderId == null) { + return ResponseEntity.badRequest().build(); } - order.setId(orderService.getOrderById(orderId).getId()); + Order order = orderService.getOrderById(orderId); + if (order == null) { + return ResponseEntity.notFound().build(); + } + order.setStatus(status); return ResponseEntity.ok(orderService.save(order) != null); } diff --git a/00-backend/src/main/java/de/htwsaar/webshop/model/OrderStatus.java b/00-backend/src/main/java/de/htwsaar/webshop/model/OrderStatus.java new file mode 100644 index 0000000..e7e84a0 --- /dev/null +++ b/00-backend/src/main/java/de/htwsaar/webshop/model/OrderStatus.java @@ -0,0 +1,9 @@ +package de.htwsaar.webshop.model; + +public enum OrderStatus { + ORDERED, //0 + IN_PROGRESS, //1 + ISSUES, //2 + DELIVERED, //3 + CANCELLED, //4 +} diff --git a/00-backend/src/main/java/de/htwsaar/webshop/repository/entities/Order.java b/00-backend/src/main/java/de/htwsaar/webshop/repository/entities/Order.java index adfbd9e..00d4fe3 100644 --- a/00-backend/src/main/java/de/htwsaar/webshop/repository/entities/Order.java +++ b/00-backend/src/main/java/de/htwsaar/webshop/repository/entities/Order.java @@ -1,5 +1,6 @@ package de.htwsaar.webshop.repository.entities; +import de.htwsaar.webshop.model.OrderStatus; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Getter; @@ -26,6 +27,9 @@ public class Order { @Column(name = "time", nullable = false) private Long time; + @Column(name = "status", nullable = false) + private OrderStatus status; + @OneToMany(mappedBy = "order", orphanRemoval = true, fetch = FetchType.LAZY, cascade = CascadeType.ALL, targetEntity = OrderItem.class) private List orderItems; }