Qual a melhor estratégia de tratar o erro para retornar uma exceção personalizada quando nao é enviado um motivo válido?
Tentei comparar se o valor passado em dados.motivoCancelamento() faz parte do enum MotivoCancelamento()? no método cancelar() do service mas não encontrei um método do enum para isso. Teria que interar todo o enum para saber se o valor passado é válido?
Os erros gerados pelo bean validation são estes:
Enviando motivo vazio:
2023-03-14T21:47:50.446-03:00 WARN 4680 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot coerce empty String ("") to
med.voll.api.domain.consulta.MotivoCancelamentovalue (but could if coercion was enabled using
CoercionConfig)]
Enviando motivo que não consta no enum:
2023-03-14T21:48:35.880-03:00 WARN 4680 --- [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type
med.voll.api.domain.consulta.MotivoCancelamentofrom String "teste": not one of the values accepted for Enum class: [OUTROS, PACIENTE_DESISTIU, MEDICO_CANCELOU]]