RED-3990-GET endpoints for list of dossiers of a specific dossier template
- add implementation for getting the list of dossiers for a certain dossier template - add junit test
This commit is contained in:
parent
9cd4c0dd19
commit
f1dc3b1035
@ -25,6 +25,7 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.do
|
||||
public interface DossierResource {
|
||||
|
||||
String REST_PATH = "/dossier";
|
||||
String DOSSIER_TEMPLATE_PATH = "/dossier-template";
|
||||
String INFO_PATH = "/info";
|
||||
String DELETED_DOSSIERS_PATH = "/deletedDossiers";
|
||||
String HARD_DELETE_PATH = "/hardDelete";
|
||||
@ -36,6 +37,8 @@ public interface DossierResource {
|
||||
|
||||
String DOSSIER_ID_PARAM = "dossierId";
|
||||
String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_ID_PARAM + "}";
|
||||
String DOSSIER_TEMPLATE_ID_PARAM = "dossierTemplateId";
|
||||
String DOSSIER_TEMPLATE_ID_PATH_PARAM = "/{" + DOSSIER_TEMPLATE_ID_PARAM + "}";
|
||||
|
||||
String INCLUDE_DELETED_PARAM = "includeDeleted";
|
||||
String INCLUDE_ARCHIVED_PARAM = "includeArchived";
|
||||
@ -60,6 +63,11 @@ public interface DossierResource {
|
||||
List<Dossier> getAllDossiers(@RequestParam(name = INCLUDE_ARCHIVED_PARAM, defaultValue = "false", required = false) boolean includeArchived,
|
||||
@RequestParam(name = INCLUDE_DELETED_PARAM, defaultValue = "false", required = false) boolean includeDeleted);
|
||||
|
||||
@GetMapping(value = REST_PATH + DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
List<Dossier> getAllDossiersForDossierTemplateId(@PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId,
|
||||
@RequestParam(name = INCLUDE_ARCHIVED_PARAM, defaultValue = "false", required = false) boolean includeArchived,
|
||||
@RequestParam(name = INCLUDE_DELETED_PARAM, defaultValue = "false", required = false) boolean includeDeleted);
|
||||
|
||||
|
||||
@GetMapping(value = REST_PATH + INFO_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
DossierInformation getDossierInformation(@RequestBody List<String> filteredDossierIds);
|
||||
@ -72,6 +80,9 @@ public interface DossierResource {
|
||||
@GetMapping(value = ARCHIVE_DOSSIERS_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
List<Dossier> getArchivedDossiers();
|
||||
|
||||
@GetMapping(value = ARCHIVE_DOSSIERS_PATH + DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
List<Dossier> getArchivedDossiersForDossierTemplateId(@PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId);
|
||||
|
||||
@GetMapping(value = DELETED_DOSSIERS_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
List<Dossier> getSoftDeletedDossiers();
|
||||
|
||||
|
||||
@ -125,6 +125,10 @@ public class DossierPersistenceService {
|
||||
return dossierRepository.findAll();
|
||||
}
|
||||
|
||||
public List<DossierEntity> findAllDossiersForDossierTemplateId(String dossierTemplateId) {
|
||||
return dossierRepository.findByDossierTemplateId(dossierTemplateId);
|
||||
}
|
||||
|
||||
|
||||
@Transactional
|
||||
public void hardDelete(String dossierId) {
|
||||
|
||||
@ -55,4 +55,7 @@ public interface DossierRepository extends JpaRepository<DossierEntity, String>
|
||||
|
||||
@Query("select d.id from DossierEntity d where d.dossierTemplateId = :dossierTemplateId and d.archivedTime is null and d.softDeletedTime is null and d.hardDeletedTime is null")
|
||||
List<String> findActiveDossierIdsForTemplate(String dossierTemplateId);
|
||||
|
||||
@Query("select d from DossierEntity d where d.dossierTemplateId = :dossierTemplateId")
|
||||
List<DossierEntity> findByDossierTemplateId(String dossierTemplateId);
|
||||
}
|
||||
|
||||
@ -96,12 +96,25 @@ public class DossierController implements DossierResource {
|
||||
public List<Dossier> getAllDossiers(@RequestParam(name = INCLUDE_ARCHIVED_PARAM, defaultValue = "false", required = false) boolean includeArchived,
|
||||
@RequestParam(name = INCLUDE_DELETED_PARAM, defaultValue = "false", required = false) boolean includeDeleted) {
|
||||
|
||||
return getConvertedAllDossiers(dossierService.getAllDossiers(), includeArchived, includeDeleted);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public List<Dossier> getAllDossiersForDossierTemplateId(@PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId,
|
||||
@RequestParam(name = INCLUDE_ARCHIVED_PARAM, defaultValue = "false", required = false) boolean includeArchived,
|
||||
@RequestParam(name = INCLUDE_DELETED_PARAM, defaultValue = "false", required = false) boolean includeDeleted) {
|
||||
|
||||
return getConvertedAllDossiers(dossierService.getAllDossiersForDossierTemplateId(dossierTemplateId), includeArchived, includeDeleted);
|
||||
|
||||
}
|
||||
|
||||
private List<Dossier> getConvertedAllDossiers(List<DossierEntity> dossierEntityList, boolean includeArchived, boolean includeDeleted) {
|
||||
if (includeDeleted && includeArchived) {
|
||||
return convert(dossierService.getAllDossiers(), Dossier.class, new DossierMapper());
|
||||
return convert(dossierEntityList, Dossier.class, new DossierMapper());
|
||||
}
|
||||
|
||||
return convert(dossierService.getAllDossiers()
|
||||
.stream()
|
||||
return convert(dossierEntityList.stream()
|
||||
.filter(p -> p.getSoftDeletedTime() == null && p.getArchivedTime() == null || includeDeleted && p.getSoftDeletedTime() != null || includeArchived && p.getArchivedTime() != null)
|
||||
.collect(Collectors.toList()), Dossier.class, new DossierMapper());
|
||||
}
|
||||
@ -152,8 +165,19 @@ public class DossierController implements DossierResource {
|
||||
@Transactional
|
||||
public List<Dossier> getArchivedDossiers() {
|
||||
|
||||
var archivedDossiers = convert(dossierService.getAllDossiers()
|
||||
.stream()
|
||||
return getArchivedDossiersList(dossierService.getAllDossiers());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public List<Dossier> getArchivedDossiersForDossierTemplateId(@PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId) {
|
||||
|
||||
return getArchivedDossiersList(dossierService.getAllDossiersForDossierTemplateId(dossierTemplateId));
|
||||
}
|
||||
|
||||
private List<Dossier> getArchivedDossiersList(List<DossierEntity> dossierEntityList) {
|
||||
|
||||
var archivedDossiers = convert(dossierEntityList.stream()
|
||||
.filter(p -> p.getArchivedTime() != null && p.getHardDeletedTime() == null && p.getSoftDeletedTime() == null)
|
||||
.collect(Collectors.toList()), Dossier.class, new DossierMapper());
|
||||
archivedDossiers.sort((dossier1, dossier2) -> dossier2.getArchivedTime().compareTo(dossier1.getArchivedTime()));
|
||||
@ -161,7 +185,6 @@ public class DossierController implements DossierResource {
|
||||
return archivedDossiers;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public List<Dossier> getSoftDeletedDossiers() {
|
||||
|
||||
@ -120,6 +120,11 @@ public class DossierService {
|
||||
return dossierPersistenceService.findAllDossiers();
|
||||
}
|
||||
|
||||
public List<DossierEntity> getAllDossiersForDossierTemplateId(String dossierTemplateId) {
|
||||
|
||||
return dossierPersistenceService.findAllDossiersForDossierTemplateId(dossierTemplateId);
|
||||
}
|
||||
|
||||
|
||||
public Set<DossierChange> changesSince(OffsetDateTime since) {
|
||||
|
||||
|
||||
@ -136,6 +136,8 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
assertThat(dossierClient.getAllDossiers(false, true)).hasSize(2);
|
||||
assertThat(dossierClient.getAllDossiers(true, true)).hasSize(2);
|
||||
assertThat(dossierClient.getArchivedDossiers()).hasSize(0);
|
||||
assertThat(dossierClient.getArchivedDossiersForDossierTemplateId(dossier1.getDossierTemplateId())).hasSize(0);
|
||||
assertThat(dossierClient.getAllDossiersForDossierTemplateId(dossier1.getDossierTemplateId(), true, true)).hasSize(2);
|
||||
assertThat(dossierClient.getSoftDeletedDossiers()).hasSize(0);
|
||||
|
||||
// Act & Assert 2
|
||||
@ -146,6 +148,8 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
assertThat(dossierClient.getAllDossiers(true, true)).hasSize(2);
|
||||
assertThat(dossierClient.getArchivedDossiers()).hasSize(1);
|
||||
assertThat(dossierClient.getSoftDeletedDossiers()).hasSize(0);
|
||||
assertThat(dossierClient.getArchivedDossiersForDossierTemplateId(dossier1.getDossierTemplateId())).hasSize(1);
|
||||
assertThat(dossierClient.getAllDossiersForDossierTemplateId(dossier1.getDossierTemplateId(), true, true)).hasSize(2);
|
||||
|
||||
var dossierInformation = dossierClient.getDossierInformation(List.of());
|
||||
assertThat(dossierInformation.getNumberOfActiveDossiers()).isEqualTo(1);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user