Este es el error que recibo al intentar agendar una consulta:
2023-09-22T22:45:21.260-03:00 ERROR 1256 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: med.voll.api.infra.errores.ValidacionDeIntegridad: Este id para el paciente no fue encontrado] with root cause
med.voll.api.infra.errores.ValidacionDeIntegridad: Este id para el paciente no fue encontrado
Este es el codigo de mi AgendaDeConsultaService: package med.voll.api.domain.consulta;
import med.voll.api.domain.medico.Medico; import med.voll.api.domain.medico.MedicoRepository; import med.voll.api.domain.paciente.PacienteRepository; import med.voll.api.infra.errores.ValidacionDeIntegridad; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;
@Service public class AgendaDeConsultaService {
@Autowired
private PacienteRepository pacienteRepository;
@Autowired
private MedicoRepository medicoRepository;
@Autowired
private ConsultaRepository consultaRepository;
public void agendar(DatosAgendarConsulta datos){
if(pacienteRepository.findById(datos.idPaciente()).isPresent()) {
throw new ValidacionDeIntegridad("Este id para el paciente no fue encontrado");
}
if(datos.idMedico()!=null && medicoRepository.existsById(datos.idMedico())) {
throw new ValidacionDeIntegridad("Este id para el medico no fue encontrado");
}
var paciente = pacienteRepository.findById(datos.idPaciente()).get();
var medico = seleccionarMedico(datos);
var consulta = new Consulta(null, medico, paciente, datos.fecha());
consultaRepository.save(consulta);
}
private Medico seleccionarMedico(DatosAgendarConsulta datos) {
if (datos.idMedico() != null) {
return medicoRepository.getReferenceById(datos.idMedico());
}
if(datos.especialidad()==null){
throw new ValidacionDeIntegridad("debe seleccionarse una especialidad para el medico");
}
return medicoRepository.seleccionarMedicoConEspecialidadEnFecha(datos.especialidad(),datos.fecha());
}
}
En la base de datos existe tanto el paciente como el medico y ambos estan activos. Qué puede estar pasando? Hace horas que estoy con esto y hasta el ChatGPT se esta cansando! Desde ya, agradezco la ayuda.