Commit a40d83ea authored by sgandhi's avatar sgandhi

changes

parent e73b9944
...@@ -20,7 +20,7 @@ repositories { ...@@ -20,7 +20,7 @@ repositories {
dependencies { dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-web'
compile group: 'org.springframework', name: 'spring-context', version: '5.2.5.RELEASE' //compile group: 'org.springframework', name: 'spring-context', version: '5.2.5.RELEASE'
compile group: 'com.google.guava', name: 'guava', version: '28.2-jre' compile group: 'com.google.guava', name: 'guava', version: '28.2-jre'
compileOnly 'org.projectlombok:lombok' compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'
......
...@@ -2,9 +2,13 @@ package com.nisum.offertransactionservice.config; ...@@ -2,9 +2,13 @@ package com.nisum.offertransactionservice.config;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.*;
@Configuration @Configuration
public class OfferTransactionConfig { public class OfferTransactionConfig {
@Bean
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
} }
...@@ -7,12 +7,13 @@ import org.springframework.stereotype.Component; ...@@ -7,12 +7,13 @@ import org.springframework.stereotype.Component;
import java.util.function.Function; import java.util.function.Function;
@Component @Component
public class OfferConverter implements Function<OfferTransactionRequest,PERequest> { public class OfferConverter implements Function<OfferTransactionRequest, PERequest> {
@Override @Override
public PERequest apply(OfferTransactionRequest offerTransactionRequest) { public PERequest apply(OfferTransactionRequest offerTransactionRequest) {
PERequest peRequest = new PERequest();
//Logic to convert OfferTransactionRequest to PE Request peRequest.setHhid(offerTransactionRequest.getHhid());
return null; peRequest.setItemList(offerTransactionRequest.getItemList());
return peRequest;
} }
} }
...@@ -8,6 +8,9 @@ import java.util.function.Function; ...@@ -8,6 +8,9 @@ import java.util.function.Function;
public class PEResponseToOfferTransactionResConverter implements Function<PEResponse, OfferTransactionResponse> { public class PEResponseToOfferTransactionResConverter implements Function<PEResponse, OfferTransactionResponse> {
@Override @Override
public OfferTransactionResponse apply(PEResponse peResponse) { public OfferTransactionResponse apply(PEResponse peResponse) {
return null; OfferTransactionResponse offerTransactionResponse = new OfferTransactionResponse();
offerTransactionResponse.setDiscountedItemList(peResponse.getDiscountedItemList());
offerTransactionResponse.setHhid(peResponse.getHhid());
return offerTransactionResponse;
} }
} }
...@@ -4,25 +4,28 @@ import com.nisum.offertransactionservice.model.OfferTransactionRequest; ...@@ -4,25 +4,28 @@ import com.nisum.offertransactionservice.model.OfferTransactionRequest;
import com.nisum.offertransactionservice.model.OfferTransactionResponse; import com.nisum.offertransactionservice.model.OfferTransactionResponse;
import com.nisum.offertransactionservice.model.PERequest; import com.nisum.offertransactionservice.model.PERequest;
import com.nisum.offertransactionservice.model.PEResponse; import com.nisum.offertransactionservice.model.PEResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.http.*;
import org.springframework.web.client.*;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
@Component @Component
public class OfferDao { public class OfferDao {
@Autowired
private RestTemplate restTemplate;
//TODO add promotionEngine url.
private static final String promotionEngineUrl = ""; private static final String promotionEngineUrl = "";
public OfferTransactionResponse convertions(OfferTransactionRequest offerTransactionRequest) { public OfferTransactionResponse convertions(OfferTransactionRequest offerTransactionRequest) {
return null; return null;
} }
public CompletableFuture<PEResponse> callPE(PERequest peRequest) { public PEResponse callPE(PERequest peRequest) {
/* ResponseEntity<PEResponse> peResponse = restTemplate.exchange(promotionEngineUrl, HttpMethod.POST, HttpEntity.EMPTY,PEResponse.class); ResponseEntity<PEResponse> peResponse = restTemplate.exchange(promotionEngineUrl, HttpMethod.POST, HttpEntity.EMPTY, PEResponse.class);
return CompletableFuture.completedFuture(peResponse.getBody());*/ return peResponse.getBody();
return null;
} }
} }
...@@ -19,5 +19,5 @@ public class PERequest { ...@@ -19,5 +19,5 @@ public class PERequest {
String hhid; String hhid;
List<Item> itemList; List<Item> itemList;
List<OfferLookup> eligibleOffers = newArrayList(); List<OfferLookup> eligibleOffers;
} }
...@@ -6,17 +6,16 @@ import lombok.Data; ...@@ -6,17 +6,16 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
import java.util.List;
import static com.google.common.collect.Lists.newArrayList;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = false) @FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = false)
public class PEResponse { public class PEResponse {
String offerId; String hhid;
String offerType; List<Item> discountedItemList = newArrayList();
String storeId;
String terminal;
String preCondition;
String id;
String idType;
} }
...@@ -9,9 +9,6 @@ import com.nisum.offertransactionservice.model.PEResponse; ...@@ -9,9 +9,6 @@ import com.nisum.offertransactionservice.model.PEResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
@Service @Service
public class OfferCallingPEService { public class OfferCallingPEService {
@Autowired @Autowired
...@@ -22,18 +19,10 @@ public class OfferCallingPEService { ...@@ -22,18 +19,10 @@ public class OfferCallingPEService {
@Autowired @Autowired
private PEResponseToOfferTransactionResConverter peResponseToOfferTransactionResConverter; private PEResponseToOfferTransactionResConverter peResponseToOfferTransactionResConverter;
public OfferTransactionResponse getDiscountedItemList(OfferTransactionRequest offerTransactionRequest){ public OfferTransactionResponse getDiscountedItemList(OfferTransactionRequest offerTransactionRequest) {
OfferTransactionResponse offerTransactionResponse = null; OfferTransactionResponse offerTransactionResponse = null;
CompletableFuture<PEResponse> peResponseCompletableFuture = offerDao.callPE(offerConverter.apply(offerTransactionRequest)); PEResponse peResponse = offerDao.callPE(offerConverter.apply(offerTransactionRequest));
try { offerTransactionResponse = peResponseToOfferTransactionResConverter.apply(peResponse);
PEResponse peResponse = peResponseCompletableFuture.get();
offerTransactionResponse = peResponseToOfferTransactionResConverter.apply(peResponse);
return offerTransactionResponse;
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
return offerTransactionResponse; return offerTransactionResponse;
} }
} }
package com.nisum.offertransactionservice;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class OffertransactionserviceApplicationTests {
@Test
void contextLoads() {
}
}
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