@RestController
@RequestMapping("/api/order")
public class OrderResource {
    private static final Logger log = LoggerFactory.getLogger(OrderResource.class);

    private final OrderService orderService;

    public OrderResource(OrderService orderService) {
	super();
	this.orderService = orderService;
    }

    @GetMapping(value = "", produces = { MediaType.APPLICATION_JSON_UTF8_VALUE })
    public DeferredResult<?> getOrder() {
	log.debug("Retrieving Order Details.");
	final DeferredResult<ResponseEntity<OrderDetailsDTO>> deferredResult = new DeferredResult<>();
	orderService.getOrderDetails().subscribeOn(Schedulers.io()).subscribe(
	    sub -> deferredResult.setResult(ResponseEntity.ok(sub)), e -> deferredResult.setErrorResult(e));
	return deferredResult;
    }
}