From 255b777af51756252dba98f5746b79083e7c2fcb Mon Sep 17 00:00:00 2001 From: Giovanni Moratto Date: Tue, 3 Aug 2021 16:08:21 -0300 Subject: [PATCH] aviso de viagem v1.0 --- .../{BloqueioRequest.java => BloqueioClientRequest.java} | 4 ++-- ...{BloqueioResponse.java => BloqueioClientResponse.java} | 6 +++--- .../desafioproposta/Bloqueio/BloqueioController.java | 8 +++++--- .../desafioproposta/aviso/AvisoController.java | 5 +---- .../desafioproposta/aviso/AvisoRequest.java | 6 +++++- .../desafioproposta/feign/CartoesFeignClient.java | 6 +++--- 6 files changed, 19 insertions(+), 16 deletions(-) rename src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/{BloqueioRequest.java => BloqueioClientRequest.java} (75%) rename src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/{BloqueioResponse.java => BloqueioClientResponse.java} (67%) diff --git a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioRequest.java b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioClientRequest.java similarity index 75% rename from src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioRequest.java rename to src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioClientRequest.java index 9aa7c496..bddd6047 100644 --- a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioRequest.java +++ b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioClientRequest.java @@ -4,11 +4,11 @@ * @Author giovanni.moratto */ -public class BloqueioRequest { +public class BloqueioClientRequest { private final String sistemaResponsavel; - public BloqueioRequest(String sistemaResponsavel) { + public BloqueioClientRequest(String sistemaResponsavel) { this.sistemaResponsavel = sistemaResponsavel; } diff --git a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioResponse.java b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioClientResponse.java similarity index 67% rename from src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioResponse.java rename to src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioClientResponse.java index ea470c64..b500addf 100644 --- a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioResponse.java +++ b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioClientResponse.java @@ -4,15 +4,15 @@ * @Author giovanni.moratto */ -public class BloqueioResponse { +public class BloqueioClientResponse { private BloqueioStatus resultado; @Deprecated - public BloqueioResponse() { + public BloqueioClientResponse() { } - public BloqueioResponse(BloqueioStatus resultado) { + public BloqueioClientResponse(BloqueioStatus resultado) { this.resultado = resultado; } diff --git a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioController.java b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioController.java index b7e59945..4db13444 100644 --- a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioController.java +++ b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioController.java @@ -50,12 +50,14 @@ public ResponseEntity solicitacaoDeBloqueio(@PathVariable Long id, BloqueioModel solicitacaoBloqueio = new BloqueioModel(request.getRemoteAddr(), userAgent, cartao.getNumero(), cartao); - logger.info("Requisição de bloqueio convertida em classe de dominio"); + bloqueioRepository.save(solicitacaoBloqueio); logger.info("Requisição de bloqueio persistida no banco de dados"); + cartao.bloquear(); logger.info("Cartão bloqueado"); + cartaoRepository.save(cartao); logger.info("Status do cartão atualizado no banco de dados"); return ResponseEntity.ok().build(); @@ -86,8 +88,8 @@ private void verificaSeCartaoJaEstaBloqueado(CartaoModel cartao) { private void notificaBloqueio(CartaoModel cartao) { logger.info("Notificação de tentativa de bloqueio enviada ao cliente"); try { - BloqueioResponse resultado = api.notificacaoDeBloqueio( - cartao.getNumero(), new BloqueioRequest("api-proposta")); + BloqueioClientResponse resultado = api.notificacaoDeBloqueio( + cartao.getNumero(), new BloqueioClientRequest("api-proposta")); logger.info("Resultado da notificação: {}", resultado.getResultado()); } catch (FeignException e) { throw new ResponseStatusException(UNPROCESSABLE_ENTITY, "Falha no sistema"); diff --git a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/aviso/AvisoController.java b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/aviso/AvisoController.java index 211041e1..95a6cc77 100644 --- a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/aviso/AvisoController.java +++ b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/aviso/AvisoController.java @@ -30,13 +30,10 @@ public class AvisoController { public ResponseEntity avisarViagem(@PathVariable Long id, @RequestBody @Valid AvisoRequest bodyRequest, HttpServletRequest httpRequest) { - String userAgent = httpRequest.getHeader(HttpHeaders.USER_AGENT); - String ip = httpRequest.getRemoteAddr(); - CartaoModel cartao = cartaoRepository.findById(id).orElseThrow(() -> new ResponseStatusException(NOT_FOUND, "Este cartão não existe.")); - AvisoModel novoAviso = bodyRequest.toModel(ip, userAgent, cartao); + AvisoModel novoAviso = bodyRequest.toModel(cartao, httpRequest); novoAviso = avisoRepository.save(novoAviso); return ResponseEntity.ok().build(); } diff --git a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/aviso/AvisoRequest.java b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/aviso/AvisoRequest.java index 7ead5b4f..f979d56a 100644 --- a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/aviso/AvisoRequest.java +++ b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/aviso/AvisoRequest.java @@ -1,7 +1,9 @@ package br.com.zupacademy.giovannimoratto.desafioproposta.aviso; import br.com.zupacademy.giovannimoratto.desafioproposta.cartao.CartaoModel; +import org.springframework.http.HttpHeaders; +import javax.servlet.http.HttpServletRequest; import javax.validation.constraints.Future; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -24,7 +26,9 @@ public AvisoRequest(String destino, LocalDate validoAte) { this.validoAte = validoAte; } - public AvisoModel toModel(String ipClient, String userAgent, CartaoModel cartao) { + public AvisoModel toModel(CartaoModel cartao, HttpServletRequest httpRequest) { + String userAgent = httpRequest.getHeader(HttpHeaders.USER_AGENT); + String ipClient = httpRequest.getRemoteAddr(); return new AvisoModel(destino, validoAte, ipClient, userAgent, cartao); } } diff --git a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/feign/CartoesFeignClient.java b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/feign/CartoesFeignClient.java index 720d9a97..3518ed47 100644 --- a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/feign/CartoesFeignClient.java +++ b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/feign/CartoesFeignClient.java @@ -1,7 +1,7 @@ package br.com.zupacademy.giovannimoratto.desafioproposta.feign; -import br.com.zupacademy.giovannimoratto.desafioproposta.Bloqueio.BloqueioRequest; -import br.com.zupacademy.giovannimoratto.desafioproposta.Bloqueio.BloqueioResponse; +import br.com.zupacademy.giovannimoratto.desafioproposta.Bloqueio.BloqueioClientRequest; +import br.com.zupacademy.giovannimoratto.desafioproposta.Bloqueio.BloqueioClientResponse; import br.com.zupacademy.giovannimoratto.desafioproposta.cartao.AnaliseRequest; import br.com.zupacademy.giovannimoratto.desafioproposta.cartao.CartaoResponse; import org.springframework.cloud.openfeign.FeignClient; @@ -20,6 +20,6 @@ public interface CartoesFeignClient { CartaoResponse associaCartao(@RequestBody AnaliseRequest request); @PostMapping("/api/cartoes/{id}/bloqueios") - BloqueioResponse notificacaoDeBloqueio(@PathVariable("id") String id, @RequestBody BloqueioRequest request); + BloqueioClientResponse notificacaoDeBloqueio(@PathVariable("id") String id, @RequestBody BloqueioClientRequest request); }