//todo: refatorar
@PostMapping("{id}/bloqueio")
    public ResponseEntity<?> bloquear(HttpServletRequest request, @PathVariable String id){
        String ip = request.getRemoteAddr();
        String userAgent = request.getHeader(HttpHeaders.USER_AGENT);
        Optional<Proposta> possivelProposta = propostaRepository.findByNumeroCartao(id);
        if(possivelProposta.isEmpty()){
            logger.info("Tentativa de bloqueio, cartao: {} não encontrado", id);
            return ResponseEntity.notFound().build();
        }
        Proposta proposta = possivelProposta.get();
        if(proposta.estaBloqueado()){
            logger.info("Tentativa de bloqueio, cartao: {} já bloqueado", id);
            return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
        }
        if(!notificarLegado(id)){
            return ResponseEntity.status(HttpStatus.BAD_GATEWAY)
                    .body(Map.of("message", "Não foi possivel concluir a ação, tente mais tarde"));
        }
        proposta.bloquear(ip, userAgent);
        propostaRepository.save(proposta);
        logger.info("Cartão: {} bloqueado com sucesso", id);
        return ResponseEntity.ok().build();
    }
@PostMapping("{id}/bloqueio")
public ResponseEntity<?> bloquear(HttpServletRequest request, @PathVariable String id){
String ip = request.getRemoteAddr();
String userAgent = request.getHeader(HttpHeaders.USER_AGENT);
Optional<Proposta> possivelProposta = propostaRepository.findByNumeroCartao(id);
if(possivelProposta.isEmpty()){
logger.info("Tentativa de bloqueio, cartao: {} não encontrado", id);
return ResponseEntity.notFound().build();
}
Proposta proposta = possivelProposta.get();
if(proposta.estaBloqueado()){
logger.info("Tentativa de bloqueio, cartao: {} já bloqueado", id);
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
}
if(!notificarLegado(id)){
return ResponseEntity.status(HttpStatus.BAD_GATEWAY)
.body(Map.of("message", "Não foi possivel concluir a ação, tente mais tarde"));
}
proposta.bloquear(ip, userAgent);
propostaRepository.save(proposta);
logger.info("Cartão: {} bloqueado com sucesso", id);
return ResponseEntity.ok().build();
}
@PostMapping("{id}/bloqueio")
public ResponseEntity<?> bloquear(HttpServletRequest request, @PathVariable String id){
String ip = request.getRemoteAddr();
String userAgent = request.getHeader(HttpHeaders.USER_AGENT);
Optional<Proposta> possivelProposta = propostaRepository.findByNumeroCartao(id);
if(possivelProposta.isEmpty()){
logger.info("Tentativa de bloqueio, cartao: {} não encontrado", id);
return ResponseEntity.notFound().build();
}
Proposta proposta = possivelProposta.get();
if(proposta.estaBloqueado()){
logger.info("Tentativa de bloqueio, cartao: {} já bloqueado", id);
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
}
if(!notificarLegado(id)){
return ResponseEntity.status(HttpStatus.BAD_GATEWAY)
.body(Map.of("message", "Não foi possivel concluir a ação, tente mais tarde"));
}
proposta.bloquear(ip, userAgent);
propostaRepository.save(proposta);
logger.info("Cartão: {} bloqueado com sucesso", id);
return ResponseEntity.ok().build();
}
@PostMapping("{id}/bloqueio")
public ResponseEntity<?> bloquear(HttpServletRequest request, @PathVariable String id){
String ip = request.getRemoteAddr();
String userAgent = request.getHeader(HttpHeaders.USER_AGENT);
Optional<Proposta> possivelProposta = propostaRepository.findByNumeroCartao(id);
if(possivelProposta.isEmpty()){
logger.info("Tentativa de bloqueio, cartao: {} não encontrado", id);
return ResponseEntity.notFound().build();
}
Proposta proposta = possivelProposta.get();
if(proposta.estaBloqueado()){
logger.info("Tentativa de bloqueio, cartao: {} já bloqueado", id);
return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).build();
}
if(!notificarLegado(id)){
return ResponseEntity.status(HttpStatus.BAD_GATEWAY)
.body(Map.of("message", "Não foi possivel concluir a ação, tente mais tarde"));
}
proposta.bloquear(ip, userAgent);
propostaRepository.save(proposta);
logger.info("Cartão: {} bloqueado com sucesso", id);
return ResponseEntity.ok().build();
}