From 58187229707fafa6fb45477ab63849c0081b9d4f Mon Sep 17 00:00:00 2001 From: karadagd20 <73991457+ituitis20-karadagd20@users.noreply.github.com> Date: Mon, 1 Jan 2024 17:42:44 +0300 Subject: [PATCH 1/7] getAll operation for medication --- .../Controllers/MedicationController.java | 14 ++++++++++++++ .../Controllers/ScheduleController.java | 2 +- .../Services/MedicationService.java | 13 +++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/production/ehayvanbackendapi/Controllers/MedicationController.java b/src/main/java/com/production/ehayvanbackendapi/Controllers/MedicationController.java index 45462e8..2c943a3 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Controllers/MedicationController.java +++ b/src/main/java/com/production/ehayvanbackendapi/Controllers/MedicationController.java @@ -7,6 +7,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequestMapping("/api/medications") public class MedicationController { @@ -26,6 +28,18 @@ public ResponseEntity getMedicationById(@PathVariable Integer id) } } + @GetMapping("/all") + public ResponseEntity> getAllMedications() { + List response = medicationService.getAllMedications(); + + if (!response.isEmpty()) { + return new ResponseEntity<>(response, HttpStatus.OK); + } else { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + } + + @PostMapping public ResponseEntity postMedication(@RequestBody CreateOrUpdateMedicationDTO medicationDto){ MedicationDTO postedMedication = medicationService.postMedication(medicationDto); diff --git a/src/main/java/com/production/ehayvanbackendapi/Controllers/ScheduleController.java b/src/main/java/com/production/ehayvanbackendapi/Controllers/ScheduleController.java index 95798e7..036deb6 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Controllers/ScheduleController.java +++ b/src/main/java/com/production/ehayvanbackendapi/Controllers/ScheduleController.java @@ -25,7 +25,7 @@ public ResponseEntity getScheduleById(@PathVariable Integer id) { return new ResponseEntity<>(HttpStatus.NOT_FOUND); } } - + @DeleteMapping("/{id}") public ResponseEntity deleteSchedule(@PathVariable Integer id) { ScheduleDTO deletedSchedule = scheduleService.deleteSchedule(id); diff --git a/src/main/java/com/production/ehayvanbackendapi/Services/MedicationService.java b/src/main/java/com/production/ehayvanbackendapi/Services/MedicationService.java index feb7f5e..fbd1cb0 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Services/MedicationService.java +++ b/src/main/java/com/production/ehayvanbackendapi/Services/MedicationService.java @@ -11,6 +11,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; @Service @@ -28,6 +30,17 @@ public MedicationDTO getMedicationById(Integer id) { return medication != null ? medicationMapper.convertToDto(medication) : null; } + public List getAllMedications() { + List medicationList = medicationRepository.findAll(); + List medicationDtoList = new ArrayList<>(); + + for (Medication medication : medicationList) { + medicationDtoList.add(medicationMapper.convertToDto(medication)); + } + + return medicationDtoList; + } + public MedicationDTO postMedication(CreateOrUpdateMedicationDTO medicationDto){ // Create a new medication from the dto. Medication newMedication = medicationMapper.convertToEntity(medicationDto); From cc9045afb0a3c507825b6ff09b4dd5f791d1db28 Mon Sep 17 00:00:00 2001 From: karadagd20 <73991457+ituitis20-karadagd20@users.noreply.github.com> Date: Mon, 1 Jan 2024 17:50:58 +0300 Subject: [PATCH 2/7] getAll operation for appointment --- .../Controllers/AppointmentController.java | 10 ++++++++++ .../Services/AppointmentService.java | 12 ++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/main/java/com/production/ehayvanbackendapi/Controllers/AppointmentController.java b/src/main/java/com/production/ehayvanbackendapi/Controllers/AppointmentController.java index 4708479..cebde96 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Controllers/AppointmentController.java +++ b/src/main/java/com/production/ehayvanbackendapi/Controllers/AppointmentController.java @@ -33,6 +33,16 @@ public ResponseEntity getAppointmentById(@PathVariable Integer i return new ResponseEntity<>(HttpStatus.NOT_FOUND); } } + @GetMapping("/all") + public ResponseEntity> getAllAppointments() { + List response = appointmentService.getAllAppointments(); + + if (!response.isEmpty()) { + return new ResponseEntity<>(response, HttpStatus.OK); + } else { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + } @PostMapping public ResponseEntity saveAppointment(@RequestBody CreateOrUpdateAppointmentDTO appointmentDTO) { diff --git a/src/main/java/com/production/ehayvanbackendapi/Services/AppointmentService.java b/src/main/java/com/production/ehayvanbackendapi/Services/AppointmentService.java index d73294c..5689429 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Services/AppointmentService.java +++ b/src/main/java/com/production/ehayvanbackendapi/Services/AppointmentService.java @@ -9,6 +9,7 @@ import com.production.ehayvanbackendapi.Mappers.AppointmentMapper; import com.production.ehayvanbackendapi.Repositories.AppointmentRepository; +import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -29,6 +30,17 @@ public AppointmentDTO getAppointmentById(Integer id) { return appointment != null ? appointmentMapper.convertToDto(appointment) : null; } + public List getAllAppointments() { + List appointmentList = appointmentRepository.findAll(); + List appointmentDtoList = new ArrayList<>(); + + for (Appointment appointment : appointmentList) { + appointmentDtoList.add(appointmentMapper.convertToDto(appointment)); + } + + return appointmentDtoList; + } + public AppointmentDTO postAppointment(CreateOrUpdateAppointmentDTO appointmentDto){ // Map the appointment dto to appointment. Appointment newAppointment = appointmentMapper.convertToEntity(appointmentDto); From d9e4b58fba3e5468c02e4594e0468f2827abcf49 Mon Sep 17 00:00:00 2001 From: karadagd20 <73991457+ituitis20-karadagd20@users.noreply.github.com> Date: Mon, 1 Jan 2024 17:56:15 +0300 Subject: [PATCH 3/7] geetAll operation for MedType --- .../Controllers/MedTypeController.java | 13 +++++++++++++ .../ehayvanbackendapi/Services/MedTypeService.java | 12 ++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/main/java/com/production/ehayvanbackendapi/Controllers/MedTypeController.java b/src/main/java/com/production/ehayvanbackendapi/Controllers/MedTypeController.java index 6bfd83f..3430c37 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Controllers/MedTypeController.java +++ b/src/main/java/com/production/ehayvanbackendapi/Controllers/MedTypeController.java @@ -6,6 +6,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequestMapping("/api/medtypes") public class MedTypeController { @@ -26,6 +28,17 @@ public ResponseEntity getMedTypeById(@PathVariable Integer id) { } } + @GetMapping("/all") + public ResponseEntity> getAllMedTypes() { + List response = medTypeService.getAllMedTypes(); + + if (!response.isEmpty()) { + return new ResponseEntity<>(response, HttpStatus.OK); + } else { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + } + @DeleteMapping("/{id}") public ResponseEntity deleteMedType(@PathVariable Integer id) { MedTypeDTO deletedMedType = medTypeService.deleteMedType(id); diff --git a/src/main/java/com/production/ehayvanbackendapi/Services/MedTypeService.java b/src/main/java/com/production/ehayvanbackendapi/Services/MedTypeService.java index 9fb1443..4a190a2 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Services/MedTypeService.java +++ b/src/main/java/com/production/ehayvanbackendapi/Services/MedTypeService.java @@ -6,6 +6,7 @@ import com.production.ehayvanbackendapi.Repositories.MedTypeRepository; import com.production.ehayvanbackendapi.Repositories.MedicationRepository; +import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -28,6 +29,17 @@ public MedTypeDTO getMedTypeById(Integer id) { return medType != null ? medTypeMapper.convertToDto(medType) : null; } + public List getAllMedTypes() { + List medTypeList = medTypeRepository.findAll(); + List medTypeDtoList = new ArrayList<>(); + + for (MedType medType : medTypeList) { + medTypeDtoList.add(medTypeMapper.convertToDto(medType)); + } + + return medTypeDtoList; + } + //gerekli mi bilemedim????? public MedTypeDTO deleteMedType(Integer id) { // Find the target MedType to delete. From fed0b18d77cb3db4d2de9e202e6d1540cdc085de Mon Sep 17 00:00:00 2001 From: karadagd20 <73991457+ituitis20-karadagd20@users.noreply.github.com> Date: Mon, 1 Jan 2024 18:34:35 +0300 Subject: [PATCH 4/7] getAllAppointments for specific pet owner operation is implemented. --- .../Controllers/AppointmentController.java | 10 ++++++++++ .../Repositories/AppointmentRepository.java | 7 +++++++ .../Services/AppointmentService.java | 15 +++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/src/main/java/com/production/ehayvanbackendapi/Controllers/AppointmentController.java b/src/main/java/com/production/ehayvanbackendapi/Controllers/AppointmentController.java index cebde96..ae07745 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Controllers/AppointmentController.java +++ b/src/main/java/com/production/ehayvanbackendapi/Controllers/AppointmentController.java @@ -43,6 +43,16 @@ public ResponseEntity> getAllAppointments() { return new ResponseEntity<>(HttpStatus.NOT_FOUND); } } + @GetMapping("/all/{petOwnerId}") + public ResponseEntity> getAllAppointmentsForPetOwner(@PathVariable Integer petOwnerId) { + List response = appointmentService.getAllAppointmentsForPetOwner(petOwnerId); + + if (!response.isEmpty()) { + return new ResponseEntity<>(response, HttpStatus.OK); + } else { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + } @PostMapping public ResponseEntity saveAppointment(@RequestBody CreateOrUpdateAppointmentDTO appointmentDTO) { diff --git a/src/main/java/com/production/ehayvanbackendapi/Repositories/AppointmentRepository.java b/src/main/java/com/production/ehayvanbackendapi/Repositories/AppointmentRepository.java index 8dc5380..8ffcfed 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Repositories/AppointmentRepository.java +++ b/src/main/java/com/production/ehayvanbackendapi/Repositories/AppointmentRepository.java @@ -2,8 +2,15 @@ import com.production.ehayvanbackendapi.Entities.Appointment; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; +import java.util.List; +import java.util.Optional; + @Repository public interface AppointmentRepository extends JpaRepository { + @Query(value="SELECT *FROM Appointment WHERE Appointment.pet_ownerid= :pet_ownerid",nativeQuery = true) + public Optional> getAppointmentsForPetOwnerId (@Param("pet_ownerid") int pet_ownerid); } diff --git a/src/main/java/com/production/ehayvanbackendapi/Services/AppointmentService.java b/src/main/java/com/production/ehayvanbackendapi/Services/AppointmentService.java index 5689429..b4a572f 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Services/AppointmentService.java +++ b/src/main/java/com/production/ehayvanbackendapi/Services/AppointmentService.java @@ -1,6 +1,7 @@ package com.production.ehayvanbackendapi.Services; import com.production.ehayvanbackendapi.DTO.AppointmentDTO; +import com.production.ehayvanbackendapi.DTO.PetOwnerDTO; import com.production.ehayvanbackendapi.DTO.request.CreateOrUpdateAppointmentDTO; import com.production.ehayvanbackendapi.Entities.Appointment; import com.production.ehayvanbackendapi.Entities.Pet; @@ -41,6 +42,20 @@ public List getAllAppointments() { return appointmentDtoList; } + public List getAllAppointmentsForPetOwner(Integer petOwnerId) { + Optional> appointmentsOptional = appointmentRepository.getAppointmentsForPetOwnerId(petOwnerId); + + if (appointmentsOptional.isPresent()) { + List appointmentDtoList = new ArrayList<>(); + for (Appointment appointment : appointmentsOptional.get()) { + appointmentDtoList.add(appointmentMapper.convertToDto(appointment)); + } + return appointmentDtoList; + } else { + return null; + } + } + public AppointmentDTO postAppointment(CreateOrUpdateAppointmentDTO appointmentDto){ // Map the appointment dto to appointment. Appointment newAppointment = appointmentMapper.convertToEntity(appointmentDto); From 16ca7a635885ee8faf00ef17fdd9ec5745a9f247 Mon Sep 17 00:00:00 2001 From: karadagd20 <73991457+ituitis20-karadagd20@users.noreply.github.com> Date: Mon, 1 Jan 2024 18:46:05 +0300 Subject: [PATCH 5/7] getAllAppointment for specific vetId is implemented --- .../Controllers/AppointmentController.java | 11 +++++++++++ .../Repositories/AppointmentRepository.java | 3 +++ .../Services/AppointmentService.java | 14 ++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/src/main/java/com/production/ehayvanbackendapi/Controllers/AppointmentController.java b/src/main/java/com/production/ehayvanbackendapi/Controllers/AppointmentController.java index ae07745..5f2a8c9 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Controllers/AppointmentController.java +++ b/src/main/java/com/production/ehayvanbackendapi/Controllers/AppointmentController.java @@ -54,6 +54,17 @@ public ResponseEntity> getAllAppointmentsForPetOwner(@PathV } } + @GetMapping("/all/veterinarian/{vetId}") + public ResponseEntity> getAllAppointmentsForVeterinarian(@PathVariable Integer vetId) { + List response = appointmentService.getAllAppointmentsForVeterinarian(vetId); + + if (!response.isEmpty()) { + return new ResponseEntity<>(response, HttpStatus.OK); + } else { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + } + @PostMapping public ResponseEntity saveAppointment(@RequestBody CreateOrUpdateAppointmentDTO appointmentDTO) { AppointmentDTO createdAppointment = appointmentService.postAppointment(appointmentDTO); diff --git a/src/main/java/com/production/ehayvanbackendapi/Repositories/AppointmentRepository.java b/src/main/java/com/production/ehayvanbackendapi/Repositories/AppointmentRepository.java index 8ffcfed..2554c72 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Repositories/AppointmentRepository.java +++ b/src/main/java/com/production/ehayvanbackendapi/Repositories/AppointmentRepository.java @@ -13,4 +13,7 @@ public interface AppointmentRepository extends JpaRepository { @Query(value="SELECT *FROM Appointment WHERE Appointment.pet_ownerid= :pet_ownerid",nativeQuery = true) public Optional> getAppointmentsForPetOwnerId (@Param("pet_ownerid") int pet_ownerid); + @Query(value="SELECT *FROM Appointment WHERE Appointment.vetid= :vetid",nativeQuery = true) + public Optional> getAppointmentsForVetID(@Param("vetid") int vetid); + } diff --git a/src/main/java/com/production/ehayvanbackendapi/Services/AppointmentService.java b/src/main/java/com/production/ehayvanbackendapi/Services/AppointmentService.java index b4a572f..659f014 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Services/AppointmentService.java +++ b/src/main/java/com/production/ehayvanbackendapi/Services/AppointmentService.java @@ -11,6 +11,7 @@ import com.production.ehayvanbackendapi.Repositories.AppointmentRepository; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Optional; @@ -55,6 +56,19 @@ public List getAllAppointmentsForPetOwner(Integer petOwnerId) { return null; } } + public List getAllAppointmentsForVeterinarian(Integer vetId) { + Optional> appointmentsOptional = appointmentRepository.getAppointmentsForVetID(vetId); + + if (appointmentsOptional.isPresent()) { + List appointmentDtoList = new ArrayList<>(); + for (Appointment appointment : appointmentsOptional.get()) { + appointmentDtoList.add(appointmentMapper.convertToDto(appointment)); + } + return appointmentDtoList; + } else { + return Collections.emptyList(); // empty list mi dönmeli null mı emin olamadım + } + } public AppointmentDTO postAppointment(CreateOrUpdateAppointmentDTO appointmentDto){ // Map the appointment dto to appointment. From 87847fa23eeadbdaf1a0f1b59c8f98ab7082a8cd Mon Sep 17 00:00:00 2001 From: karadagd20 <73991457+ituitis20-karadagd20@users.noreply.github.com> Date: Mon, 1 Jan 2024 19:18:04 +0300 Subject: [PATCH 6/7] get all pets for specific pet owner operation is implemented --- .../Controllers/PetController.java | 18 +++++++++++------ .../Repositories/PetRepository.java | 8 ++++++++ .../Services/PetService.java | 20 ++++++++++++++----- 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/production/ehayvanbackendapi/Controllers/PetController.java b/src/main/java/com/production/ehayvanbackendapi/Controllers/PetController.java index 1d2ea10..e3b89e3 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Controllers/PetController.java +++ b/src/main/java/com/production/ehayvanbackendapi/Controllers/PetController.java @@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Optional; @RestController @RequestMapping("/api/pets") @@ -29,12 +30,17 @@ public ResponseEntity getPetById(@PathVariable Integer id) { } } -// @GetMapping -// public ResponseEntity> getAllPets() { -// List petDTOList = petService.getAllPets(); -// return new ResponseEntity<>(petDTOList, HttpStatus.OK); -// } -// + @GetMapping("/all/{petOwnerId}") + public ResponseEntity> getAllPetsForPetOwner(@PathVariable Integer petOwnerId) { + List response = petService.getAllPetsForPetOwner(petOwnerId); + + if (!response.isEmpty()) { + return new ResponseEntity<>(response, HttpStatus.OK); + } else { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + } + @PostMapping public ResponseEntity savePet(@RequestBody CreateOrUpdatePetDTO petDTO) { PetDTO savedPet = petService.postPet(petDTO); diff --git a/src/main/java/com/production/ehayvanbackendapi/Repositories/PetRepository.java b/src/main/java/com/production/ehayvanbackendapi/Repositories/PetRepository.java index a6be5d5..c2c64f6 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Repositories/PetRepository.java +++ b/src/main/java/com/production/ehayvanbackendapi/Repositories/PetRepository.java @@ -1,9 +1,17 @@ package com.production.ehayvanbackendapi.Repositories; +import com.production.ehayvanbackendapi.Entities.Appointment; import com.production.ehayvanbackendapi.Entities.Pet; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; +import java.util.List; +import java.util.Optional; + @Repository public interface PetRepository extends JpaRepository { + @Query(value="SELECT *FROM Pet WHERE Pet.pet_ownerid = :pet_ownerid",nativeQuery = true) + public Optional> getAllPetsForPetOwner(@Param("pet_ownerid") int pet_ownerid); } diff --git a/src/main/java/com/production/ehayvanbackendapi/Services/PetService.java b/src/main/java/com/production/ehayvanbackendapi/Services/PetService.java index 7e875c5..5a9faa4 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Services/PetService.java +++ b/src/main/java/com/production/ehayvanbackendapi/Services/PetService.java @@ -115,11 +115,21 @@ public PetDTO deletePet(Integer id){ return null; } -// public List getAllPets() { -// List pets = petRepository.findAll(); -// return petMapper.mapList(pets, PetDTO.class); -// } + public List getAllPetsForPetOwner(Integer petOwnerId) { + Optional> petsOptional = petRepository.getAllPetsForPetOwner(petOwnerId); + + if (petsOptional.isPresent()) { + List petDtoList = new ArrayList<>(); + for (Pet pet : petsOptional.get()) { + petDtoList.add(petMapper.convertToDto(pet)); + } + return petDtoList; + } else { + return null; + } + } + + - // Other service methods } From 60d046c96857ee62e49618a0f2b90348af4b268f Mon Sep 17 00:00:00 2001 From: karadagd20 <73991457+ituitis20-karadagd20@users.noreply.github.com> Date: Mon, 1 Jan 2024 19:33:48 +0300 Subject: [PATCH 7/7] getAllPetOwners for specific vet is implemented --- .../Controllers/PetOwnerController.java | 13 +++++++++++++ .../Repositories/PetOwnerRepository.java | 9 +++++++++ .../Services/PetOwnerService.java | 15 ++++++++++++++- 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/production/ehayvanbackendapi/Controllers/PetOwnerController.java b/src/main/java/com/production/ehayvanbackendapi/Controllers/PetOwnerController.java index 04a8f1f..f16db7e 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Controllers/PetOwnerController.java +++ b/src/main/java/com/production/ehayvanbackendapi/Controllers/PetOwnerController.java @@ -7,6 +7,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequestMapping("/api/petowners") public class PetOwnerController { @@ -27,6 +29,17 @@ public ResponseEntity getPetOwnerById(@PathVariable Integer id) { } } + @GetMapping("/forVet/{vetId}") + public ResponseEntity> getPetOwnersForVeterinarian(@PathVariable Integer vetId) { + List response = petOwnerService.getPetOwnersForVeterinarian(vetId); + + if (!response.isEmpty()) { + return new ResponseEntity<>(response, HttpStatus.OK); + } else { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + } + @PostMapping("/newowner") public ResponseEntity savePetOwner(@RequestBody CreateOrUpdatePetOwnerDTO petOwnerDTO) { PetOwnerDTO savedPetOwner = petOwnerService.postPetOwner(petOwnerDTO); diff --git a/src/main/java/com/production/ehayvanbackendapi/Repositories/PetOwnerRepository.java b/src/main/java/com/production/ehayvanbackendapi/Repositories/PetOwnerRepository.java index 7b3d956..126e576 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Repositories/PetOwnerRepository.java +++ b/src/main/java/com/production/ehayvanbackendapi/Repositories/PetOwnerRepository.java @@ -1,9 +1,18 @@ package com.production.ehayvanbackendapi.Repositories; +import com.production.ehayvanbackendapi.Entities.Pet; import com.production.ehayvanbackendapi.Entities.PetOwner; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; +import java.util.List; +import java.util.Optional; + @Repository public interface PetOwnerRepository extends JpaRepository { + @Query(value="SELECT *FROM pet_owner WHERE pet_owner.vetid = :vetid",nativeQuery = true) + public Optional> getAllPetsForPetOwner(@Param("vetid") int vetid); } + diff --git a/src/main/java/com/production/ehayvanbackendapi/Services/PetOwnerService.java b/src/main/java/com/production/ehayvanbackendapi/Services/PetOwnerService.java index 09ca546..e98bbbc 100644 --- a/src/main/java/com/production/ehayvanbackendapi/Services/PetOwnerService.java +++ b/src/main/java/com/production/ehayvanbackendapi/Services/PetOwnerService.java @@ -29,6 +29,20 @@ public PetOwnerService(PetOwnerRepository petOwnerRepository, PetOwnerMapper pet this.petOwnerMapper = petOwnerMapper; } + public List getPetOwnersForVeterinarian(Integer vetId) { + Optional> petOwnersOptional = petOwnerRepository.getAllPetsForPetOwner(vetId); + + if (petOwnersOptional.isPresent()) { + List petOwnerDtoList = new ArrayList<>(); + for (PetOwner petOwner : petOwnersOptional.get()) { + petOwnerDtoList.add(petOwnerMapper.convertToDto(petOwner)); + } + return petOwnerDtoList; + } else { + return null; + } + } + public PetOwnerDTO getPetOwnerById(Integer id) { Optional petOwner = petOwnerRepository.findById(id); // Listeler otomatik olarak mapleniyor. Şimdilik bir problem yok. @@ -40,7 +54,6 @@ public PetOwnerDTO getPetOwnerById(Integer id) { } // Other service methods for updating, deleting pet owners, etc. - // TODO: getAllPetOwners() fonksiyonu oluşturulacak. public PetOwnerDTO postPetOwner(CreateOrUpdatePetOwnerDTO petOwnerDTO){ // Map the data transfer object data to real object.