sonar fixes.

parent 286d3491
...@@ -3,6 +3,7 @@ package com.nisum.offertransactionservice.client; ...@@ -3,6 +3,7 @@ package com.nisum.offertransactionservice.client;
import com.nisum.offertransactionservice.config.OfferTransactionConfig; import com.nisum.offertransactionservice.config.OfferTransactionConfig;
import com.nisum.offertransactionservice.dto.PERequest; import com.nisum.offertransactionservice.dto.PERequest;
import com.nisum.offertransactionservice.dto.PEResponse; import com.nisum.offertransactionservice.dto.PEResponse;
import com.nisum.offertransactionservice.util.ExceptionUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
...@@ -62,8 +63,8 @@ public class ClientService { ...@@ -62,8 +63,8 @@ public class ClientService {
accept(MediaType.APPLICATION_JSON). accept(MediaType.APPLICATION_JSON).
body(Mono.just(uuid), String.class). body(Mono.just(uuid), String.class).
retrieve(). retrieve().
onStatus(HttpStatus::is4xxClientError, clientResponse -> handleError(clientResponse)). onStatus(HttpStatus::is4xxClientError, ExceptionUtil::handleError).
onStatus(HttpStatus::is5xxServerError, clientResponse -> handleError(clientResponse)). onStatus(HttpStatus::is5xxServerError, ExceptionUtil::handleError).
bodyToMono(String.class); bodyToMono(String.class);
} }
...@@ -74,8 +75,8 @@ public class ClientService { ...@@ -74,8 +75,8 @@ public class ClientService {
contentType(MediaType.APPLICATION_JSON). contentType(MediaType.APPLICATION_JSON).
body(Mono.just(peRequest), PERequest.class). body(Mono.just(peRequest), PERequest.class).
retrieve(). retrieve().
onStatus(HttpStatus::is4xxClientError, clientResponse -> handleError(clientResponse)). onStatus(HttpStatus::is4xxClientError, ExceptionUtil::handleError).
onStatus(HttpStatus::is5xxServerError, clientResponse -> handleError(clientResponse)). onStatus(HttpStatus::is5xxServerError, ExceptionUtil::handleError).
bodyToFlux(PEResponse.class). bodyToFlux(PEResponse.class).
blockFirst(); blockFirst();
} }
......
package com.nisum.offertransactionservice.config; package com.nisum.offertransactionservice.config;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.FieldDefaults;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
......
...@@ -18,6 +18,9 @@ import java.io.IOException; ...@@ -18,6 +18,9 @@ import java.io.IOException;
@CrossOrigin("*") @CrossOrigin("*")
public class OfferTransactionController { public class OfferTransactionController {
private static final String SWY_RES_UNIQUE_UUID = "swy-res-unique-uuid";
private static final String USER_ID = "user-id";
@Autowired @Autowired
private OfferCallingPEService offerCallingPEService; private OfferCallingPEService offerCallingPEService;
...@@ -29,16 +32,16 @@ public class OfferTransactionController { ...@@ -29,16 +32,16 @@ public class OfferTransactionController {
@PostMapping("offerTransactionCall") @PostMapping("offerTransactionCall")
public OfferTransactionResponse getOfferTransactionResponse(@Valid @RequestBody OfferTransactionRequest offerTransactionRequest) throws InterruptedException { public OfferTransactionResponse getOfferTransactionResponse(@Valid @RequestBody OfferTransactionRequest offerTransactionRequest) throws InterruptedException {
MDC.put("swy-res-unique-uuid", String.valueOf(offerTransactionRequest.getHhId())); MDC.put(SWY_RES_UNIQUE_UUID, String.valueOf(offerTransactionRequest.getHhId()));
MDC.put("user-id", String.valueOf(offerTransactionRequest.getHhId())); MDC.put(USER_ID, String.valueOf(offerTransactionRequest.getHhId()));
return offerCallingPEService.getDiscountedItemList(offerTransactionRequest); return offerCallingPEService.getDiscountedItemList(offerTransactionRequest);
} }
@PostMapping("endOfSale") @PostMapping("endOfSale")
public EndOfSaleResponse endOfSale(@Valid @RequestBody EndOfSaleReq endOfSaleReq) throws IOException { public EndOfSaleResponse endOfSale(@Valid @RequestBody EndOfSaleReq endOfSaleReq) throws IOException {
MDC.put("swy-res-unique-uuid", endOfSaleReq.getOfferTransactionResponse().getHhid()); MDC.put(SWY_RES_UNIQUE_UUID, endOfSaleReq.getOfferTransactionResponse().getHhid());
MDC.put("user-id", endOfSaleReq.getOfferTransactionResponse().getHhid()); MDC.put(USER_ID, endOfSaleReq.getOfferTransactionResponse().getHhid());
String transactionID = endOfSaleService.putEndofSaleResInDb(endOfSaleReq); String transactionID = endOfSaleService.putEndofSaleResInDb(endOfSaleReq);
EndOfSaleResponse endOfSaleResponse = new EndOfSaleResponse(); EndOfSaleResponse endOfSaleResponse = new EndOfSaleResponse();
endOfSaleResponse.setUuId(transactionID); endOfSaleResponse.setUuId(transactionID);
...@@ -48,8 +51,8 @@ public class OfferTransactionController { ...@@ -48,8 +51,8 @@ public class OfferTransactionController {
@PostMapping("/endOfTransaction") @PostMapping("/endOfTransaction")
public String endOfTransaction(@Valid @RequestBody String uuid) { public String endOfTransaction(@Valid @RequestBody String uuid) {
MDC.put("swy-res-unique-uuid", uuid); MDC.put(SWY_RES_UNIQUE_UUID, uuid);
MDC.put("user-id", uuid); MDC.put(USER_ID, uuid);
return endOfTransactionService.endOfTransaction(uuid); return endOfTransactionService.endOfTransaction(uuid);
} }
......
package com.nisum.offertransactionservice.dao; package com.nisum.offertransactionservice.dao;
import com.nisum.offertransactionservice.dto.Offer;
import com.nisum.offertransactionservice.model.OfferLookup; import com.nisum.offertransactionservice.model.OfferLookup;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import javax.swing.text.html.Option;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Optional;
public interface OfferLookupRepo extends JpaRepository<OfferLookup,String> { public interface OfferLookupRepo extends JpaRepository<OfferLookup,String> {
......
package com.nisum.offertransactionservice.dto; package com.nisum.offertransactionservice.dto;
import com.nisum.offertransactionservice.model.OfferLookupComposite;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
......
package com.nisum.offertransactionservice.dto; package com.nisum.offertransactionservice.dto;
import com.nisum.offertransactionservice.dto.Item;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
......
package com.nisum.offertransactionservice.dto; package com.nisum.offertransactionservice.dto;
import com.nisum.offertransactionservice.dto.Item;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
......
package com.nisum.offertransactionservice.dto; package com.nisum.offertransactionservice.dto;
import com.nisum.offertransactionservice.dto.Item;
import com.nisum.offertransactionservice.model.OfferLookup;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
...@@ -10,7 +8,6 @@ import lombok.experimental.FieldDefaults; ...@@ -10,7 +8,6 @@ import lombok.experimental.FieldDefaults;
import java.util.List; import java.util.List;
import static com.google.common.collect.Lists.newArrayList;
@Data @Data
......
package com.nisum.offertransactionservice.dto; package com.nisum.offertransactionservice.dto;
import com.nisum.offertransactionservice.dto.Item;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
......
...@@ -4,7 +4,7 @@ import com.safeway.epe.model.Response; ...@@ -4,7 +4,7 @@ import com.safeway.epe.model.Response;
public class GlobalApiGenericException extends RuntimeException { public class GlobalApiGenericException extends RuntimeException {
private static final long serialVersionUID = -3841677326659278730L; private static final long serialVersionUID = -3841677326659278730L;
private String statusCode; private String statusCode;
......
...@@ -8,7 +8,6 @@ import lombok.NoArgsConstructor; ...@@ -8,7 +8,6 @@ import lombok.NoArgsConstructor;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Embeddable;
import java.io.Serializable; import java.io.Serializable;
@Data @Data
......
...@@ -31,8 +31,7 @@ public class EndOfSaleService { ...@@ -31,8 +31,7 @@ public class EndOfSaleService {
endOfSaleRepo.save(endOfSaleEntity); endOfSaleRepo.save(endOfSaleEntity);
if(Objects.nonNull(endOfSaleReq.getOfferTransactionResponse().getTransactionId())) if(Objects.nonNull(endOfSaleReq.getOfferTransactionResponse().getTransactionId()))
return endOfSaleReq.getOfferTransactionResponse().getTransactionId(); return endOfSaleReq.getOfferTransactionResponse().getTransactionId();
final String toString = endOfSaleEntity.getUuid().toString(); return endOfSaleEntity.getUuid().toString();
return toString;
} }
......
...@@ -4,35 +4,23 @@ import com.nisum.offertransactionservice.client.ClientService; ...@@ -4,35 +4,23 @@ import com.nisum.offertransactionservice.client.ClientService;
import com.nisum.offertransactionservice.genericexception.GlobalApiGenericException; import com.nisum.offertransactionservice.genericexception.GlobalApiGenericException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource; import org.springframework.context.annotation.PropertySource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.ExchangeFilterFunction;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import javax.annotation.PostConstruct;
import java.util.Objects; import java.util.Objects;
import static com.nisum.offertransactionservice.util.ExceptionUtil.handleError;
@Service @Service
@PropertySource("classpath:application.properties") @PropertySource("classpath:application.properties")
@Slf4j @Slf4j
public class EndOfTransactionService { public class EndOfTransactionService {
@Autowired @Autowired
ClientService clientService; ClientService clientService;
//TODO: configuration properties instead of @Value
public String endOfTransaction(String uuid) { public String endOfTransaction(String uuid) {
if (Objects.isNull(uuid) || uuid.isEmpty()) { if (Objects.isNull(uuid) || uuid.isEmpty()) {
log.error("Offer transaction uuid is empty or null"); log.error("Offer transaction uuid is empty or null");
......
...@@ -14,10 +14,7 @@ import org.springframework.context.annotation.PropertySource; ...@@ -14,10 +14,7 @@ import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
...@@ -73,7 +70,7 @@ public class OfferCallingPEService { ...@@ -73,7 +70,7 @@ public class OfferCallingPEService {
} }
return null; return null;
}) })
.filter(offerLookupDTO -> offerLookupDTO!=null) .filter(Objects::nonNull)
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
......
...@@ -10,11 +10,17 @@ import reactor.core.publisher.Mono; ...@@ -10,11 +10,17 @@ import reactor.core.publisher.Mono;
@Slf4j @Slf4j
public class ExceptionUtil { public class ExceptionUtil {
public static Mono<? extends Throwable> handleError(ClientResponse clientResponse)throws GlobalApiGenericException { private ExceptionUtil(){
throw new GlobalApiGenericException();
}
public static Mono<Throwable> handleError(ClientResponse clientResponse) {
final Mono<Response> responseMono = clientResponse.bodyToMono(Response.class); final Mono<Response> responseMono = clientResponse.bodyToMono(Response.class);
return responseMono.flatMap(response -> { return responseMono.flatMap(ExceptionUtil::apply);
log.error("Error Response While Calling Service {}",response); }
throw new GlobalApiGenericException(response, response.getHttpStatusCode());
}); private static Mono<? extends Throwable> apply(Response response) {
log.error("Error Response While Calling Service {}", response);
throw new GlobalApiGenericException(response, response.getHttpStatusCode());
} }
} }
spring.profiles.active=dev spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/postgres
spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/storedb spring.datasource.username=user
spring.datasource.username=postgres spring.datasource.password=password123
spring.datasource.password=dbpwd
endpoint.url.promotionEngineUrl=/promotionEngine/calculateDiscount endpoint.url.promotionEngineUrl=/promotionEngine/calculateDiscount
endpoint.url.peBaseUrl=http://localhost:7073 endpoint.url.peBaseUrl=http://localhost:7073
endpoint.url.storeProducerUrl=/store/producer endpoint.url.storeProducerUrl=/store/producer
endpoint.url.spBaseUrl=http://localhost:7070 endpoint.url.spBaseUrl=http://localhost:7070
server.port = 7072 server.port = 7072
\ No newline at end of file
...@@ -60,7 +60,7 @@ public class OfferControllerTest { ...@@ -60,7 +60,7 @@ public class OfferControllerTest {
public void endOfTransactionTest() { public void endOfTransactionTest() {
Mockito.when(endOfTransactionService.endOfTransaction(ArgumentMatchers.anyString())).thenReturn("End Of Transaction note from Store Producer"); Mockito.when(endOfTransactionService.endOfTransaction(ArgumentMatchers.anyString())).thenReturn("End Of Transaction note from Store Producer");
String res = offerTransactionController.endOfTransaction(UUID.randomUUID().toString()); String res = offerTransactionController.endOfTransaction(UUID.randomUUID().toString());
Assert.assertEquals(res, "End Of Transaction note from Store Producer"); Assert.assertEquals( "End Of Transaction note from Store Producer",res);
} }
private EndOfSaleReq getEndOfSaleReq() { private EndOfSaleReq getEndOfSaleReq() {
......
...@@ -27,7 +27,6 @@ import static com.github.tomakehurst.wiremock.client.WireMock.*; ...@@ -27,7 +27,6 @@ import static com.github.tomakehurst.wiremock.client.WireMock.*;
@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.DEFINED_PORT) @SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.DEFINED_PORT)
@AutoConfigureWireMock @AutoConfigureWireMock
@ActiveProfiles(value = "integration")
public class OfferTransactionControllerIntegrationTest extends AbstractTestBase{ public class OfferTransactionControllerIntegrationTest extends AbstractTestBase{
@Rule @Rule
...@@ -81,6 +80,7 @@ public class OfferTransactionControllerIntegrationTest extends AbstractTestBase{ ...@@ -81,6 +80,7 @@ public class OfferTransactionControllerIntegrationTest extends AbstractTestBase{
); );
OfferTransactionResponse offerTransactionResponse = responseEntity.getBody(); OfferTransactionResponse offerTransactionResponse = responseEntity.getBody();
System.out.println(offerTransactionResponse); System.out.println(offerTransactionResponse);
Assert.assertNotNull(offerTransactionResponse.getTransactionId());
} }
......
...@@ -65,21 +65,21 @@ class OfferTransactionControllerTest { ...@@ -65,21 +65,21 @@ class OfferTransactionControllerTest {
when(offerCallingPEService.getOfferMetaDto(ArgumentMatchers.any())).thenReturn(getOfferLookupDto()); when(offerCallingPEService.getOfferMetaDto(ArgumentMatchers.any())).thenReturn(getOfferLookupDto());
Mockito.doReturn(Optional.of(getOfferMeta())).when(offerMetaDataRepo).findByOfferIdAndOfferStatusIgnoreCase(Mockito.anyLong(), Mockito.anyString()); Mockito.doReturn(Optional.of(getOfferMeta())).when(offerMetaDataRepo).findByOfferIdAndOfferStatusIgnoreCase(Mockito.anyLong(), Mockito.anyString());
OfferTransactionResponse offerTransactionResponse = offerTransactionController.getOfferTransactionResponse(getOfferTransactionRequest()); OfferTransactionResponse offerTransactionResponse = offerTransactionController.getOfferTransactionResponse(getOfferTransactionRequest());
assertEquals(Objects.nonNull(offerTransactionResponse.getTransactionId()),true); assertEquals(true,Objects.nonNull(offerTransactionResponse.getTransactionId()));
} }
@Description("Component test for endOfSale method") @Description("Component test for endOfSale method")
@Test @Test
void endOfSale() throws IOException { void endOfSale() throws IOException {
when(endOfSaleRepo.save(Mockito.any(EndOfSaleEntity.class))).thenReturn(new EndOfSaleEntity()); when(endOfSaleRepo.save(Mockito.any(EndOfSaleEntity.class))).thenReturn(new EndOfSaleEntity());
assertEquals(Objects.nonNull(offerTransactionController.endOfSale(buildEndOfSaleReq())),true); assertEquals(true,Objects.nonNull(offerTransactionController.endOfSale(buildEndOfSaleReq())));
} }
@Description("Component test for endOfTransaction method") @Description("Component test for endOfTransaction method")
@Test @Test
void endOfTransaction() { void endOfTransaction() {
when(clientService.getStringMono(Mockito.anyString())).thenReturn(getMonoOfString()); when(clientService.getStringMono(Mockito.anyString())).thenReturn(getMonoOfString());
assertEquals(Objects.nonNull(offerTransactionController.endOfTransaction(UU_ID_FOR_END_OF_TRANSACTION)),true); assertEquals(true,Objects.nonNull(offerTransactionController.endOfTransaction(UU_ID_FOR_END_OF_TRANSACTION)));
} }
private List<OfferLookup> getOffers() { private List<OfferLookup> getOffers() {
......
...@@ -42,7 +42,7 @@ public class EndOfSaleTest { ...@@ -42,7 +42,7 @@ public class EndOfSaleTest {
EndOfSaleReq endOfSaleReq = getEndOfSaleReq(); EndOfSaleReq endOfSaleReq = getEndOfSaleReq();
Mockito.when(endOfSaleRepo.save(ArgumentMatchers.any())).thenReturn(ArgumentMatchers.any()); Mockito.when(endOfSaleRepo.save(ArgumentMatchers.any())).thenReturn(ArgumentMatchers.any());
String uuid = endOfSaleService.putEndofSaleResInDb(endOfSaleReq); String uuid = endOfSaleService.putEndofSaleResInDb(endOfSaleReq);
Assert.assertEquals(uuid,"123456788899999998"); Assert.assertEquals("123456788899999998",uuid);
} }
@Test @Test
......
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