1
resposta

repository retorna mono boolean e não consgio fazer if nele

tenho esse seguinte metodo:

private void searchLoja(List itensloja) {// itenslojar n estao sendo usados por enquanto pq to mockando os valores ali final var idsLojas = List.of(2, 69998787); valid(idsLojas).subscribe(); }

private Mono<Void> valid(List<Integer> lojas) {
    return Flux.fromIterable(lojas)
        .flatMap(id -> repository.existsByLojaId(id)
            .flatMap(exists -> {
                System.out.println(exists);
                if (!exists) {
                    throw ExceptionUtils.buildException(
                        HttpStatus.NOT_FOUND,
                        "message.lojaid.not_found",
                         id.toString());
                }
                return Mono.empty();
            }))
        .then();
}

ele joga a exceção no console mas não vem na response, parece q não ta seguindo no fluxo e não há nenhum tratamento, eu chamo o metodo apenas

o repository vem mono, aqueles valores estao mockados um é true eoutro false, logo era pra jogar a exceção e vir 404, tem outro código q utiliza a mesma exceção e funciona então acho que é problema no meu webflux q fiz ali, alguma sugestão?

acredito que pela persistencia retornar o mono boolean desencadeie tudo, mas só funciona com mono boolean... o que faço? já tentei varias maeniras, não sei se é o subscribe ou o then ali que meio que não deixa ele subir a exception na response

1 resposta

Oii, Jade! Tudo bem com você?

Desculpa pela demora em te responder.

Pude perceber que você finalizou o curso, fico feliz que tenha encontrado uma solução! Caso se sinta confortável em compartilhar seu conhecimento, interagir com outros estudantes, trocar experiências e fazer networking, que participe do Discord oficial da Alura de estudantes:

Qualquer dúvida, estaremos à disposição.

Bons estudos, Jade!