From 3b7437f6541deb3c875dbd180c6e2ea95f755c5d Mon Sep 17 00:00:00 2001 From: Mirna Gama Date: Sat, 6 Jan 2024 19:17:08 -0300 Subject: [PATCH] [R6] Find patients method in patient service class --- .../services/PatientServiceImpl.java | 19 +++++++++++++++++++ .../domain/services/PatientService.java | 13 +++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/main/java/com/mirna/hospitalmanagementapi/application/services/PatientServiceImpl.java b/src/main/java/com/mirna/hospitalmanagementapi/application/services/PatientServiceImpl.java index 335a32f..0710aa7 100644 --- a/src/main/java/com/mirna/hospitalmanagementapi/application/services/PatientServiceImpl.java +++ b/src/main/java/com/mirna/hospitalmanagementapi/application/services/PatientServiceImpl.java @@ -1,11 +1,15 @@ package com.mirna.hospitalmanagementapi.application.services; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import com.mirna.hospitalmanagementapi.application.usecase.patient.FindPatientByIdUseCase; +import com.mirna.hospitalmanagementapi.application.usecase.patient.FindPatientsUseCase; import com.mirna.hospitalmanagementapi.application.usecase.patient.SavePatientUseCase; import com.mirna.hospitalmanagementapi.domain.dtos.patient.PatientDTO; +import com.mirna.hospitalmanagementapi.domain.dtos.patient.PatientPublicDataDTO; import com.mirna.hospitalmanagementapi.domain.entities.Patient; import com.mirna.hospitalmanagementapi.domain.services.PatientService; import com.mirna.hospitalmanagementapi.infra.handlers.EntityNotFoundErrorHandler; @@ -29,6 +33,9 @@ public class PatientServiceImpl implements PatientService { @Autowired private FindPatientByIdUseCase findPatientById; + @Autowired + private FindPatientsUseCase findPatients; + /** * Adds a new patient to the database. * @@ -60,4 +67,16 @@ public class PatientServiceImpl implements PatientService { return patient; } + /** + * Finds patients from the database. + * + * @param pageable Pagination information, such as size and page number + * + * @return A paginated sublist containing data transfer objects with patients public information in the repository + */ + @Override + public Page findPatients(Pageable pageable) { + return findPatients.execute(pageable).map(PatientPublicDataDTO::new); + } + } diff --git a/src/main/java/com/mirna/hospitalmanagementapi/domain/services/PatientService.java b/src/main/java/com/mirna/hospitalmanagementapi/domain/services/PatientService.java index 32ca3b4..8770899 100644 --- a/src/main/java/com/mirna/hospitalmanagementapi/domain/services/PatientService.java +++ b/src/main/java/com/mirna/hospitalmanagementapi/domain/services/PatientService.java @@ -1,6 +1,10 @@ package com.mirna.hospitalmanagementapi.domain.services; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + import com.mirna.hospitalmanagementapi.domain.dtos.patient.PatientDTO; +import com.mirna.hospitalmanagementapi.domain.dtos.patient.PatientPublicDataDTO; import com.mirna.hospitalmanagementapi.domain.entities.Patient; /** @@ -28,4 +32,13 @@ public interface PatientService { */ public Patient findPatientById(Long id); + /** + * Retrieves a paginated sublist of doctors. + * + * @param pageable Pagination information, such as size and page number + * + * @return A paginated sublist containing data transfer objects with patients public information in the repository + */ + public Page findPatients(Pageable pageable); + }