Skip to content

Commit babc1dd

Browse files
Fix: Use builder for generating order and order-item instances
1 parent 52a3f8a commit babc1dd

File tree

1 file changed

+10
-17
lines changed

1 file changed

+10
-17
lines changed

src/main/java/com/sample/ecommerce/order/service/OrderService.java

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ public Orders create(OrderDto orderDto) {
4040
throw new ObjectNotFoundException(Customer.class);
4141

4242
log.info("Creating order for customer - {}" , orderDto.getCustomerId());
43-
Orders order= new Orders();
44-
Orders createdOrder = repository.save(createOrderfromDto(order,orderDto));
43+
Orders order= createOrderfromDto(new Orders(),orderDto);
44+
Orders createdOrder = repository.save(order);
4545
log.info("Order details : order_id - {}, total_price - {}, total_quantity - {}, customer_id - {}, order_status - {}" ,order.getId(),order.getTotalPrice(),order.getTotalQuantity(),orderDto.getCustomerId(),order.getStatus());
4646
return createdOrder;
4747
}
@@ -52,33 +52,26 @@ public Orders createOrderfromDto(Orders order,OrderDto orderDto) {
5252
int totalPrice = 0;
5353
List<OrderItem> orderItems = new ArrayList<OrderItem>();
5454
Product product = new Product();
55-
5655
int itemId, price;
5756

57+
order = order.toBuilder().status((orderDto.getStatus()!=null)?orderDto.getStatus():OrderStatus.INITIATED)
58+
.totalQuantity(totalQuantity)
59+
.totalPrice(totalPrice)
60+
.customer(customerRepository.findById(orderDto.getCustomerId()).get()).build();
61+
5862
for(OrderItemDto item : orderDto.getOrderItems()){
5963
totalQuantity+=item.getQuantity();
6064
itemId = item.getProductId();
6165
product = productRepository.findById(itemId).get();
6266
price = product.getUnitPrice();
6367
totalPrice +=(item.getQuantity() * price);
6468

65-
66-
OrderItem orderItem = new OrderItem();
67-
orderItem.setQuantity(item.getQuantity());
68-
orderItem.setProduct(product);
69-
orderItem.setOrder(order);
70-
orderItems.add(orderItem);
69+
OrderItem orderItem = OrderItem.builder().quantity(item.getQuantity()).product(product).order(order).build();
70+
orderItems.add(orderItem);
7171
}
7272

73-
if(orderDto.getStatus()== null)
74-
order.setStatus(OrderStatus.INITIATED);
75-
else
76-
order.setStatus(orderDto.getStatus());
77-
order.setTotalQuantity(totalQuantity);
78-
order.setTotalPrice(totalPrice);
7973
order.setOrderItems(orderItems);
80-
order.setCustomer(customerRepository.findById(orderDto.getCustomerId()).get());
81-
74+
8275
return order;
8376

8477
}

0 commit comments

Comments
 (0)