package com.yummynoodlebar.rest.controller; import com.yummynoodlebar.core.events.orders.OrderStatusEvent; import com.yummynoodlebar.core.events.orders.RequestOrderStatusEvent; import com.yummynoodlebar.core.services.OrderService; import com.yummynoodlebar.rest.domain.OrderStatus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import java.util.UUID; @Controller @RequestMapping("/aggregators/orders/{id}/status") public class OrderStatusController { @Autowired private OrderService orderService; @RequestMapping(method = RequestMethod.GET) public ResponseEntity<OrderStatus> getOrderStatus(@PathVariable String id) { OrderStatusEvent orderStatusEvent = orderService.requestOrderStatus(new RequestOrderStatusEvent(UUID.fromString(id))); if (!orderStatusEvent.isEntityFound()) { return new ResponseEntity<OrderStatus>(HttpStatus.NOT_FOUND); } return new ResponseEntity<OrderStatus>( OrderStatus.fromOrderStatusDetails( orderStatusEvent.getKey(), orderStatusEvent.getOrderStatus()), HttpStatus.OK); } }