Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class OrderProcessor implements OrderService {
- @Value("${services.order.uri}")
- private String ORDER_API;
- private String PRODUCT_URL = "/products/northfacehoodie";
- private String SHIPPING_URL = "/shipping/northfacehoodie";
- private static final Logger log = LoggerFactory.getLogger(OrderProcessor.class);
- private RestTemplate restTemplate = new RestTemplate();
- @Override
- public Observable<OrderDetailsDTO> getOrderDetails() {
- log.debug("Retrieving the Order Details.");
- return Observable.zip(getProductDetails(), getShippingInformation(),
- (productInfo, shippingInfo) -> new ProductDetailsDTOTOOrderDetailsDTOTransformer(shippingInfo)
- .transform(productInfo));
- }
- private Observable<ProductDetailsDTO> getProductDetails() {
- return Observable.<ProductDetailsDTO> create(sub -> {
- ProductDetailsDTO productDetailsDTO = restTemplate
- .getForEntity(ORDER_API + PRODUCT_URL, ProductDetailsDTO.class).getBody();
- sub.onNext(productDetailsDTO);
- sub.onCompleted();
- log.debug("Product details were received successfully.");
- });
- }
- private Observable<ShippingDetailsDTO> getShippingInformation() {
- return Observable.<ShippingDetailsDTO> create(sub -> {
- ShippingDetailsDTO shippingDetailsDTO = restTemplate
- .getForEntity(ORDER_API + SHIPPING_URL, ShippingDetailsDTO.class).getBody();
- sub.onNext(shippingDetailsDTO);
- sub.onCompleted();
- log.debug("Shipping details were received successfully.");
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement