Olá,
Fiz a pergunta na aula anterior e acabou tendo parte da resposta na seguinte. A verificacao se o erro de fato existe. Nesse caso como ja tem a pergunta do Bruno antes da minha, o proprio Optional seria uma forma de validacao para evitar duas consultas ou ifs desnecessarios.
ou usando a opcao .orElseThrow
como coloquei o codigo na discussão da aula anterior, ja disparando a exception, ou usando um .isPresent()
caso queira manter o uso do IF.
//Abordagem com if
public void agendar(DadosAgendamentoConsulta dados) {
var paciente = pacienteRepository.findById(dados.getPacienteId());
var medico = medicoRepository.findById(dados.getMedicoId());
if(!paciente.isPresent()) {
throw new ValidacaoException("Paciente não cadastrado");
}
if(!medico.isPresent()) {
throw new ValidacaoException("Medico nao cadastrado");
}
var consulta = new Consulta(null, medico.get(), paciente.get(), dados.data());
}
//Abordagem sem if
public void agendar(DadosAgendamentoConsulta dados) {
var paciente = pacienteRepository.findById(dados.getPacienteId())
.orElseThrow(() -> throw new ValidacaoException("Paciente não cadastrado"));
var medico = medicoRepository.findById(dados.getMedicoId())
.orElseThrow(() -> throw new ValidacaoException("Medico nao cadastrado"));
var consulta = new Consulta(null, medico, paciente, dados.data());
}