[R2] Add find method in service class

This commit is contained in:
Mirna Gama 2024-01-04 16:59:06 -03:00 committed by Mirna Gama
parent 8d365061ab
commit 6ad63db9d1
2 changed files with 27 additions and 0 deletions

View File

@ -1,10 +1,14 @@
package com.mirna.hospitalmanagementapi.application.services; package com.mirna.hospitalmanagementapi.application.services;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mirna.hospitalmanagementapi.application.usecase.doctor.AddDoctorUseCase; 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.DoctorDTO;
import com.mirna.hospitalmanagementapi.domain.dtos.DoctorPublicDataDTO;
import com.mirna.hospitalmanagementapi.domain.entities.Doctor; import com.mirna.hospitalmanagementapi.domain.entities.Doctor;
import com.mirna.hospitalmanagementapi.domain.services.DoctorService; import com.mirna.hospitalmanagementapi.domain.services.DoctorService;
@ -23,6 +27,9 @@ public class DoctorServiceImpl implements DoctorService {
@Autowired @Autowired
private AddDoctorUseCase addDoctor; private AddDoctorUseCase addDoctor;
@Autowired
private FindAllDoctorsUseCase findAllDoctors;
/** /**
* Adds a new doctor to the database. * Adds a new doctor to the database.
* *
@ -37,4 +44,14 @@ public class DoctorServiceImpl implements DoctorService {
return addDoctor.execute(doctor); 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<DoctorPublicDataDTO> findDoctors() {
return findAllDoctors.execute().stream().map(DoctorPublicDataDTO::new).toList();
}
} }

View File

@ -1,6 +1,9 @@
package com.mirna.hospitalmanagementapi.domain.services; package com.mirna.hospitalmanagementapi.domain.services;
import java.util.List;
import com.mirna.hospitalmanagementapi.domain.dtos.DoctorDTO; 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.entities.Doctor;
/** /**
@ -19,5 +22,12 @@ public interface DoctorService {
* @return The saved doctor if successful, or null if there is an error. * @return The saved doctor if successful, or null if there is an error.
*/ */
public Doctor addDoctor(DoctorDTO doctorDTO); 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<DoctorPublicDataDTO> findDoctors();
} }