Skip to content

Commit

Permalink
notificação de bloqueio v1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
giovnnvm committed Aug 3, 2021
1 parent e7537fc commit 933a351
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import br.com.zupacademy.giovannimoratto.desafioproposta.cartao.CartaoStatus;
import br.com.zupacademy.giovannimoratto.desafioproposta.feign.CartoesFeignClient;
import br.com.zupacademy.giovannimoratto.desafioproposta.proposta.PropostaController;
import feign.FeignException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -16,7 +17,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;

Expand Down Expand Up @@ -70,23 +70,26 @@ private CartaoModel verificaSeCartaoExiste(Long id) {
private void verificaSeCartaoJaEstaBloqueado(CartaoModel cartao) {
logger.info("Verificando se o cartão já está bloqueado...");
Optional <CartaoModel> optionalCartao = cartaoRepository.findById(cartao.getId());
if (optionalCartao.get().getStatus().equals(CartaoStatus.BLOQUEADO)) {

if (optionalCartao.isPresent() && optionalCartao.get().getStatus().equals(CartaoStatus.BLOQUEADO)) {
throw new ResponseStatusException(UNPROCESSABLE_ENTITY, "Este cartão já foi bloqueado");
}
logger.info("Verificando se o cartão possui solicitação de bloqueio...");
BloqueioModel solicitacaoBloqueio = bloqueioRepository.findByNumero(cartao.getNumero()).orElseThrow();
if (solicitacaoBloqueio.isAtivo()) {
Optional <BloqueioModel> solicitacaoBloqueio = bloqueioRepository.findByCartao(cartao);

if (solicitacaoBloqueio.isPresent() && solicitacaoBloqueio.get().isAtivo()) {
throw new ResponseStatusException(UNPROCESSABLE_ENTITY, "Já foi solicitado o bloqueio deste cartão");
}
logger.info("Nenhum bloqueio ativo no cartão");
}

private void notificaBloqueio(CartaoModel cartao) {
logger.info("Notificação de tentativa de bloqueio enviada ao cliente");
BloqueioResponse resultado = api.notificacaoDeBloqueio(
cartao.getNumero(), new BloqueioRequest("api-proposta"));
logger.info("Resultado da notificação: {}", resultado.getResultado());
if (resultado.getResultado().equals(FALHA)) {
try {
BloqueioResponse resultado = api.notificacaoDeBloqueio(
cartao.getNumero(), new BloqueioRequest("api-proposta"));
logger.info("Resultado da notificação: {}", resultado.getResultado());
} catch (FeignException e) {
throw new ResponseStatusException(UNPROCESSABLE_ENTITY, "Falha no sistema");
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package br.com.zupacademy.giovannimoratto.desafioproposta.Bloqueio;

import br.com.zupacademy.giovannimoratto.desafioproposta.cartao.CartaoModel;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

Expand All @@ -12,5 +13,7 @@
@Repository
public interface BloqueioRepository extends JpaRepository <BloqueioModel, Long> {

Optional <BloqueioModel> findByNumero(String numero);

Optional <BloqueioModel> findByCartao(CartaoModel cartao);

}

0 comments on commit 933a351

Please sign in to comment.