Commit a40d83ea authored by sgandhi's avatar sgandhi

changes

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