diff options
| author | lucashemi <lucasxberger@gmail.com> | 2023-02-28 17:57:23 -0300 |
|---|---|---|
| committer | lucashemi <lucasxberger@gmail.com> | 2023-02-28 17:57:23 -0300 |
| commit | 74165bbd25981d06a16bc42a8bd39dec644275ae (patch) | |
| tree | 299cf610433e6ee197a906858f42742acfd20f33 /api/src | |
| parent | bc072aafa156b303b0ea2681cc23f449bc1734b3 (diff) | |
Diffstat (limited to 'api/src')
4 files changed, 12 insertions, 2 deletions
diff --git a/api/src/main/java/med/voll/api/controller/DoctorController.java b/api/src/main/java/med/voll/api/controller/DoctorController.java index f87da56..f53093b 100644 --- a/api/src/main/java/med/voll/api/controller/DoctorController.java +++ b/api/src/main/java/med/voll/api/controller/DoctorController.java @@ -2,6 +2,7 @@ package med.voll.api.controller; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import jakarta.validation.Valid; +import jakarta.validation.ValidationException; import med.voll.api.domain.doctor.DoctorListingData; import med.voll.api.domain.doctor.Doctor; import med.voll.api.domain.doctor.DoctorRepository; @@ -54,6 +55,10 @@ public class DoctorController { @Transactional public ResponseEntity delete(@PathVariable Long id) { Doctor doctor = doctorRepository.getReferenceById(id); + var appointments = doctorRepository.findAnyAppointmentFromDoctor(id); + if (appointments != null) { + throw new ValidationException("Can't delete doctor with active appointments"); + } doctor.delete(); return ResponseEntity.noContent().build(); diff --git a/api/src/main/java/med/voll/api/controller/PatientController.java b/api/src/main/java/med/voll/api/controller/PatientController.java index 16c0973..7b2cd51 100644 --- a/api/src/main/java/med/voll/api/controller/PatientController.java +++ b/api/src/main/java/med/voll/api/controller/PatientController.java @@ -54,7 +54,7 @@ public class PatientController { @Transactional public ResponseEntity delete(@PathVariable Long id) { Patient patient = patientRepository.getReferenceById(id); - var appointments = patientRepository.findAnyAppointmentFrom(id); + var appointments = patientRepository.findAnyAppointmentFromPatient(id); if (appointments != null) { throw new ValidationException("Can't delete patient with active appointments"); } diff --git a/api/src/main/java/med/voll/api/domain/doctor/DoctorRepository.java b/api/src/main/java/med/voll/api/domain/doctor/DoctorRepository.java index 8cd6c46..c2f1567 100644 --- a/api/src/main/java/med/voll/api/domain/doctor/DoctorRepository.java +++ b/api/src/main/java/med/voll/api/domain/doctor/DoctorRepository.java @@ -28,4 +28,9 @@ public interface DoctorRepository extends JpaRepository<Doctor, Long> { where d.id = :id """) Boolean findActiveById(Long id); + + @Query(""" + select d.id from Doctor d join Appointment a on d.id = a.doctor.id where a.active = true and d.id = :id + """) + Long findAnyAppointmentFromDoctor(Long id); } diff --git a/api/src/main/java/med/voll/api/domain/patient/PatientRepository.java b/api/src/main/java/med/voll/api/domain/patient/PatientRepository.java index c53d47a..077dfa0 100644 --- a/api/src/main/java/med/voll/api/domain/patient/PatientRepository.java +++ b/api/src/main/java/med/voll/api/domain/patient/PatientRepository.java @@ -19,5 +19,5 @@ public interface PatientRepository extends JpaRepository<Patient, Long> { @Query(""" select p.id from Patient p join Appointment a on p.id = a.patient.id where a.active = true and p.id = :id """) - Long findAnyAppointmentFrom(Long id); + Long findAnyAppointmentFromPatient(Long id); } |
