From 6ad63db9d196f4641960d7fc66981a1101adf502 Mon Sep 17 00:00:00 2001 From: Mirna Gama Date: Thu, 4 Jan 2024 16:59:06 -0300 Subject: [PATCH] [R2] Add find method in service class --- .../application/services/DoctorServiceImpl.java | 17 +++++++++++++++++ .../domain/services/DoctorService.java | 10 ++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/main/java/com/mirna/hospitalmanagementapi/application/services/DoctorServiceImpl.java b/src/main/java/com/mirna/hospitalmanagementapi/application/services/DoctorServiceImpl.java index 05658da..7ed0e73 100644 --- a/src/main/java/com/mirna/hospitalmanagementapi/application/services/DoctorServiceImpl.java +++ b/src/main/java/com/mirna/hospitalmanagementapi/application/services/DoctorServiceImpl.java @@ -1,10 +1,14 @@ package com.mirna.hospitalmanagementapi.application.services; +import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.mirna.hospitalmanagementapi.application.usecase.doctor.AddDoctorUseCase; +import com.mirna.hospitalmanagementapi.application.usecase.doctor.FindAllDoctorsUseCase; import com.mirna.hospitalmanagementapi.domain.dtos.DoctorDTO; +import com.mirna.hospitalmanagementapi.domain.dtos.DoctorPublicDataDTO; import com.mirna.hospitalmanagementapi.domain.entities.Doctor; import com.mirna.hospitalmanagementapi.domain.services.DoctorService; @@ -23,6 +27,9 @@ public class DoctorServiceImpl implements DoctorService { @Autowired private AddDoctorUseCase addDoctor; + @Autowired + private FindAllDoctorsUseCase findAllDoctors; + /** * Adds a new doctor to the database. * @@ -37,4 +44,14 @@ public class DoctorServiceImpl implements DoctorService { return addDoctor.execute(doctor); } + /** + * Finds doctors from the database. + * + * @return A paginated list containing data transfer objects with doctors public information in the repository + */ + @Override + public List findDoctors() { + return findAllDoctors.execute().stream().map(DoctorPublicDataDTO::new).toList(); + } + } diff --git a/src/main/java/com/mirna/hospitalmanagementapi/domain/services/DoctorService.java b/src/main/java/com/mirna/hospitalmanagementapi/domain/services/DoctorService.java index 8c076a8..08d356f 100644 --- a/src/main/java/com/mirna/hospitalmanagementapi/domain/services/DoctorService.java +++ b/src/main/java/com/mirna/hospitalmanagementapi/domain/services/DoctorService.java @@ -1,6 +1,9 @@ package com.mirna.hospitalmanagementapi.domain.services; +import java.util.List; + import com.mirna.hospitalmanagementapi.domain.dtos.DoctorDTO; +import com.mirna.hospitalmanagementapi.domain.dtos.DoctorPublicDataDTO; import com.mirna.hospitalmanagementapi.domain.entities.Doctor; /** @@ -19,5 +22,12 @@ public interface DoctorService { * @return The saved doctor if successful, or null if there is an error. */ public Doctor addDoctor(DoctorDTO doctorDTO); + + /** + * Retrieves a list of doctors. + * + * @return A list containing data transfer objects with doctors public information in the repository + */ + public List findDoctors(); }