Commit c7e9eb4f authored by Kyle Muldoon's avatar Kyle Muldoon

Merge branch 'Dev' of https://gitlab.mynisum.com/ascend/ecommerce-maven into...

Merge branch 'Dev' of https://gitlab.mynisum.com/ascend/ecommerce-maven into AFP68-pipeline-user-session-place-order
parents 2fed9e4d 7ba895fe
package com.nisum.ecomservice.config;
public class AppConfig {
private static final String orderManagementUrl = "http://localhost:8084";
private static final String productsManagementUrl = "http://localhost:8083";
private static final String promoManagementUrl = "http://localhost:8082";
public static String getOrderManagementUrl() {
return orderManagementUrl;
}
public static String getProductsManagementUrl() {
return productsManagementUrl;
}
public static String getPromoManagementUrl() {
return promoManagementUrl;
}
}
package com.nisum.ecomservice.service; package com.nisum.ecomservice.service;
import com.nisum.ecomservice.config.AppConfig;
import com.nisum.ecomservice.dto.*; import com.nisum.ecomservice.dto.*;
import com.nisum.ecomservice.model.*; import com.nisum.ecomservice.model.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -20,6 +19,8 @@ public class OrderService { ...@@ -20,6 +19,8 @@ public class OrderService {
@Autowired @Autowired
ProductService productService; ProductService productService;
@Value("${orders.apiUrl}")
private String orderManagementUrl;
public Mono<Order> postOrder(OrderRequest orderRequest) { public Mono<Order> postOrder(OrderRequest orderRequest) {
...@@ -93,7 +94,7 @@ public class OrderService { ...@@ -93,7 +94,7 @@ public class OrderService {
} }
public Mono<Order> postOrderToAPI(OrderSubmission orderSubmission){ public Mono<Order> postOrderToAPI(OrderSubmission orderSubmission){
return WebClient.create(String.format("%s/api/orders", AppConfig.getOrderManagementUrl())) return WebClient.create(String.format("%s/api/orders", orderManagementUrl))
.post() .post()
.bodyValue(orderSubmission) .bodyValue(orderSubmission)
.retrieve() .retrieve()
...@@ -101,7 +102,7 @@ public class OrderService { ...@@ -101,7 +102,7 @@ public class OrderService {
} }
public Flux<Order> getOrderFromOmsAPI(String userId){ public Flux<Order> getOrderFromOmsAPI(String userId){
return WebClient.create(String.format("%s/api/orders/byCustomer/%s", AppConfig.getOrderManagementUrl(),userId)) return WebClient.create(String.format("%s/api/orders/byCustomer/%s", orderManagementUrl,userId))
.get() .get()
.retrieve() .retrieve()
.bodyToFlux(Order.class); .bodyToFlux(Order.class);
......
package com.nisum.ecomservice.service; package com.nisum.ecomservice.service;
import com.nisum.ecomservice.config.AppConfig;
import com.nisum.ecomservice.model.Product; import com.nisum.ecomservice.model.Product;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
...@@ -13,8 +13,15 @@ import java.util.List; ...@@ -13,8 +13,15 @@ import java.util.List;
@Service @Service
public class ProductService { public class ProductService {
@Value("${products.apiUrl}")
private String productsManagementUrl;
@Value("${promos.apiUrl}")
private String promoManagementUrl;
public Mono<Product> getProductBySku(String sku){ public Mono<Product> getProductBySku(String sku){
return WebClient.create(String.format("%s/api/products/%s", AppConfig.getProductsManagementUrl(),sku)) return WebClient.create(String.format("%s/api/products/%s", productsManagementUrl,sku))
.get() .get()
.retrieve() .retrieve()
.bodyToMono(Product.class); .bodyToMono(Product.class);
...@@ -23,7 +30,7 @@ public class ProductService { ...@@ -23,7 +30,7 @@ public class ProductService {
public Flux<Product> getAllProducts() { public Flux<Product> getAllProducts() {
return WebClient return WebClient
.builder() .builder()
.baseUrl(AppConfig.getProductsManagementUrl()) .baseUrl(productsManagementUrl)
.build() .build()
.get() .get()
.uri("/api/products") .uri("/api/products")
...@@ -34,7 +41,7 @@ public class ProductService { ...@@ -34,7 +41,7 @@ public class ProductService {
public Flux<Promotion> getAllPromotions() { public Flux<Promotion> getAllPromotions() {
return WebClient return WebClient
.builder() .builder()
.baseUrl(AppConfig.getPromoManagementUrl()) .baseUrl(promoManagementUrl)
.build() .build()
.get() .get()
.uri("/api/promos") .uri("/api/promos")
...@@ -43,7 +50,7 @@ public class ProductService { ...@@ -43,7 +50,7 @@ public class ProductService {
} }
public Flux<Promotion> getPromotionBySkus(List<String> listOfSkus){ public Flux<Promotion> getPromotionBySkus(List<String> listOfSkus){
return WebClient.create(String.format("%s/api/promos/bulkSearch",AppConfig.getPromoManagementUrl())) return WebClient.create(String.format("%s/api/promos/bulkSearch",promoManagementUrl))
.post() .post()
.bodyValue(listOfSkus) .bodyValue(listOfSkus)
.retrieve() .retrieve()
......
spring.data.mongodb.database=e-commerce-db spring.data.mongodb.database=e-commerce-db
security.enable-csrf=false security.enable-csrf=false
server.port=8080 server.port=8080
products.apiUrl=http://localhost:8083
promos.apiUrl=http://localhost:8082
orders.apiUrl=http://localhost:8084
\ No newline at end of file
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