package com.yummynoodlebar.web.controller; import java.util.UUID; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.yummynoodlebar.core.services.OrderService; import com.yummynoodlebar.events.orders.OrderDetailsEvent; import com.yummynoodlebar.events.orders.OrderStatusEvent; import com.yummynoodlebar.events.orders.RequestOrderDetailsEvent; import com.yummynoodlebar.events.orders.RequestOrderStatusEvent; import com.yummynoodlebar.web.domain.OrderStatus; @Controller @RequestMapping("/order/{orderId}") public class OrderStatusController { private static final Logger LOG = LoggerFactory .getLogger(OrderStatusController.class); @Autowired private OrderService orderService; @RequestMapping(method = RequestMethod.GET) public String orderStatus(@ModelAttribute("orderStatus") OrderStatus orderStatus) { LOG.debug("Get order status for order id {} customer {}", orderStatus.getOrderId(), orderStatus.getName()); return "/order"; } @ModelAttribute("orderStatus") private OrderStatus getOrderStatus(@PathVariable("orderId") String orderId) { OrderDetailsEvent orderDetailsEvent = orderService.requestOrderDetails(new RequestOrderDetailsEvent(UUID.fromString(orderId))); OrderStatusEvent orderStatusEvent = orderService.requestOrderStatus(new RequestOrderStatusEvent(UUID.fromString(orderId))); OrderStatus status = new OrderStatus(); status.setName(orderDetailsEvent.getOrderDetails().getName()); status.setOrderId(orderId); status.setStatus(orderStatusEvent.getOrderStatus().getStatus()); return status; } }