Commit 3a54dfd3 authored by Christopher Cottier's avatar Christopher Cottier

debugging with sai

parent da9a9de0
......@@ -8,6 +8,9 @@ import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
......@@ -24,8 +27,6 @@ public class OrderService {
User user = orderRequest.getUser();
Address address = orderRequest.getAddress();
CartPostDTO cart = orderRequest.getCart();
//for each item grab product details from products API
List<Mono<Product>> productsToOrder = cart.getCartItems().stream()
.map(cartItem -> cartItem.getProductRef().getSku())
......@@ -50,6 +51,24 @@ public class OrderService {
orderItem.setItemQuantity(quantity);
//set promotion if applicable
Flux<Promotion> promotionFlux = productService
.getPromotionBySkus(Arrays.asList(orderItem.getItemSku()));
promotionFlux
.collectList()
.map(promotionList -> {
System.out.println("Give me promo list");
if (promotionList.size() == 0 ) {return promotionList;}
Promotion promotion = promotionList.get(0);
if (orderItem.getItemQuantity().intValue() >= promotion.getMinimumQuantity().intValue()) {
Float originalPrice = orderItem.getItemPrice();
Float newPrice = originalPrice * (promotion.getDiscountPercentage() / 100);
orderItem.setItemPrice(newPrice);
}
return promotion;
}).subscribe();
return orderItem;
});
//
......
......@@ -8,6 +8,8 @@ import reactor.core.publisher.Mono;
import com.nisum.ecomservice.model.Promotion;
import reactor.core.publisher.Flux;
import java.util.List;
@Service
public class ProductService {
......@@ -40,4 +42,12 @@ public class ProductService {
.bodyToFlux(Promotion.class);
}
public Flux<Promotion> getPromotionBySkus(List<String> listOfSkus){
return WebClient.create(String.format("%s/api/promos/bulkSearch",AppConfig.getPromoManagementUrl()))
.post()
.bodyValue(listOfSkus)
.retrieve()
.bodyToFlux(Promotion.class);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment