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?