Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Na inserção de um novo tópico, como eu faria para tratar uma situação na qual o curso não existe?

Olá pessoal! Minha dúvida é a seguinte: sempre preciso passar no body um json referente aos três campos:


{
"titulo":"teste tratamento",
"mensagem":"teste mensagem tratamento" ,
"nomeCurso":"Spring Boot"
}

No caso de um nomeCurso que exista na tabela de curso, ele acha o mesmo e insere a referência na tabela de topicos. No caso de um nomeCurso que não existe na tabela de curso, ele preenche o respectivo campo da tabela topico com null. Exemplo de body a ser enviado com curso que não será achado:

{
"titulo":"teste tratamento",
"mensagem":"teste mensagem tratamento" ,
"nomeCurso":"Z"
}

Incluí um tratamento na classe TopicoForm para setar null quando não achar o curso:

public Topico converter(CursoRepository repositoryCurso) {
    Curso curso = repositoryCurso.findByNome(nomeCurso);

    if (curso != null) {
        return new Topico(titulo, mensagem, curso) ;    
    } else {
        return null;
    }
}

Quero tratar essa situação para que retorne um status code 400 referente a um nome de curso inválido Criei esse método na classe ErroValidacaoHandler:

@ResponseStatus(code=HttpStatus.BAD_REQUEST)
@ExceptionHandler(InvalidDataAccessApiUsageException.class)
public ErroFormularioDto handle(InvalidDataAccessApiUsageException exception) {
    ErroFormularioDto erro = new ErroFormularioDto("teste",exception.getMessage());
    return erro;
}

Mas percebo que não é a melhor forma de tratar isso. Qual seria?

2 respostas

acredito que seria melhor criar uma classe que jogasse o valor que nao existe no banc de dados e assim devolvesse com o novo curso

solução!

Foi resolvido no último vídeo desse curso.