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 81192ade..20ab14cf 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 @@ -2,7 +2,6 @@ import br.com.zupacademy.giovannimoratto.desafioproposta.cartao.CartaoModel; import br.com.zupacademy.giovannimoratto.desafioproposta.cartao.CartaoRepository; -import br.com.zupacademy.giovannimoratto.desafioproposta.feign.CartoesFeignClient; import br.com.zupacademy.giovannimoratto.desafioproposta.proposta.PropostaController; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,7 +14,6 @@ import javax.transaction.Transactional; import java.util.Optional; -import static br.com.zupacademy.giovannimoratto.desafioproposta.Bloqueio.BloqueioStatus.FALHA; import static org.springframework.http.HttpStatus.NOT_FOUND; import static org.springframework.http.HttpStatus.UNPROCESSABLE_ENTITY; @@ -33,8 +31,6 @@ public class BloqueioController { private CartaoRepository cartaoRepository; @Autowired private BloqueioRepository bloqueioRepository; - @Autowired - private CartoesFeignClient api; @PostMapping("/cartoes/bloqueio/{id}") @Transactional @@ -43,34 +39,30 @@ public ResponseEntity bloquearCartao(@PathVariable Long id, HttpServletRequest request) { CartaoModel cartao = verificaSeCartaoExiste(id); + logger.info("Cartão encontrado"); verificaSeCartaoJaEstaBloqueado(cartao); - solicitaBloqueio(cartao); - + logger.info("Nenhum bloqueio ativo no cartão"); BloqueioModel cartaoBloqueado = new BloqueioModel(request.getRemoteAddr(), userAgent, cartao.getNumero(), cartao); - + logger.info("Requisição de bloqueio convertida em classe de dominio"); bloqueioRepository.save(cartaoBloqueado); + logger.info("Requisição de bloqueio persistida no banco de dados"); return ResponseEntity.ok().build(); } private CartaoModel verificaSeCartaoExiste(Long id) { + logger.info("Buscando cartão por ID..."); return cartaoRepository.findById(id).orElseThrow(() -> new ResponseStatusException(NOT_FOUND, "Este cartão não existe")); } private void verificaSeCartaoJaEstaBloqueado(CartaoModel cartao) { + logger.info("Verificando se o cartão já está bloqueado..."); Optional optionalBloqueio = bloqueioRepository.findByNumero(cartao.getNumero()); if (optionalBloqueio.isPresent()) { - throw new ResponseStatusException(UNPROCESSABLE_ENTITY, "Cartão já bloqueado"); + throw new ResponseStatusException(UNPROCESSABLE_ENTITY, "Cartão já está bloqueado"); } } - private void solicitaBloqueio(CartaoModel cartao) { - BloqueioResponse resultado = api.solicitacaoBloqueio( - cartao.getNumero(), new BloqueioRequest("api-proposta")); - if (resultado.getResultado().equals(FALHA)) { - throw new ResponseStatusException(UNPROCESSABLE_ENTITY, "Falha no sistema"); - } - } } diff --git a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioModel.java b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioModel.java index 07cb79bc..216e811a 100644 --- a/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioModel.java +++ b/src/main/java/br/com/zupacademy/giovannimoratto/desafioproposta/Bloqueio/BloqueioModel.java @@ -27,7 +27,6 @@ public class BloqueioModel { private String userAgent; @CreationTimestamp private LocalDateTime bloqueadoEm; - private boolean ativo; @NotNull @OneToOne(cascade = CascadeType.MERGE, fetch = FetchType.EAGER) private CartaoModel cartao; @@ -41,7 +40,6 @@ public BloqueioModel(String ipCliente, String userAgent, String numero, CartaoMo this.userAgent = userAgent; this.numero = numero; this.cartao = cartao; - this.ativo = true; } public Long getId() { @@ -68,8 +66,4 @@ public CartaoModel getCartao() { return cartao; } - public boolean isAtivo() { - return ativo; - } - } 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 f90040e5..47e1b36f 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,11 +1,8 @@ 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.cartao.AnaliseRequest; import br.com.zupacademy.giovannimoratto.desafioproposta.cartao.CartaoResponse; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -19,7 +16,4 @@ public interface CartoesFeignClient { @PostMapping("/api/cartoes") CartaoResponse associaCartao(@RequestBody AnaliseRequest request); - @PostMapping("/api/cartoes/{id}/bloqueios") - BloqueioResponse solicitacaoBloqueio(@PathVariable("id") String id, @RequestBody BloqueioRequest request); - }