Pull request #443: RED-4153: Getting all existing dossiers returns deleted archived dossiers
Merge in RED/persistence-service from RED-4153-2 to master * commit 'e4337bbedc75fbddc3566019aec92344a0abba61': RED-4153: Getting all existing dossiers returns deleted archived dossiers
This commit is contained in:
commit
d93e413b82
@ -63,8 +63,7 @@ public class DossierController implements DossierResource {
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Dossier updateDossier(@RequestBody CreateOrUpdateDossierRequest dossierRequest,
|
||||
@PathVariable(DOSSIER_ID_PARAM) String dossierId) {
|
||||
public Dossier updateDossier(@RequestBody CreateOrUpdateDossierRequest dossierRequest, @PathVariable(DOSSIER_ID_PARAM) String dossierId) {
|
||||
|
||||
return convert(dossierService.updateDossier(dossierRequest, dossierId), Dossier.class, new DossierMapper());
|
||||
}
|
||||
@ -99,26 +98,44 @@ public class DossierController implements DossierResource {
|
||||
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) {
|
||||
@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);
|
||||
return getConvertedAllDossiers(dossierService.getAllDossiersForDossierTemplateId(dossierTemplateId), includeArchived, includeDeleted);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private List<Dossier> getConvertedAllDossiers(List<DossierEntity> dossierEntityList, boolean includeArchived, boolean includeDeleted) {
|
||||
|
||||
List<DossierEntity> dossierEntitiesList = dossierEntityList.stream().filter(dossierEntity -> dossierEntity.getHardDeletedTime() == null).collect(Collectors.toList());
|
||||
|
||||
// return all dossiers
|
||||
if (includeDeleted && includeArchived) {
|
||||
return convert(dossierEntityList, Dossier.class, new DossierMapper());
|
||||
return convert(dossierEntitiesList, Dossier.class, new DossierMapper());
|
||||
}
|
||||
|
||||
return convert(dossierEntityList.stream()
|
||||
.filter(p -> p.getSoftDeletedTime() == null && p.getArchivedTime() == null || includeDeleted && p.getSoftDeletedTime() != null || includeArchived && p.getArchivedTime() != null)
|
||||
// return archived and non-deleted dossiers
|
||||
if (includeArchived) {
|
||||
return convert(dossierEntitiesList.stream().filter(p -> p.getSoftDeletedTime() == null).collect(Collectors.toList()), Dossier.class, new DossierMapper());
|
||||
}
|
||||
|
||||
// return deleted and non-archived dossiers
|
||||
if (includeDeleted) {
|
||||
return convert(dossierEntitiesList.stream().filter(p -> p.getArchivedTime() == null).collect(Collectors.toList()), Dossier.class, new DossierMapper());
|
||||
}
|
||||
|
||||
// return only non-deleted and non-archived dossiers
|
||||
return convert(dossierEntitiesList.stream()
|
||||
.filter(p -> p.getSoftDeletedTime() == null && p.getArchivedTime() == null)
|
||||
.collect(Collectors.toList()), Dossier.class, new DossierMapper());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public DossierInformation getDossierInformation(@RequestBody List<String> filteredDossierIds) {
|
||||
|
||||
@ -168,6 +185,7 @@ public class DossierController implements DossierResource {
|
||||
return getArchivedDossiersList(dossierService.getAllDossiers());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public List<Dossier> getArchivedDossiersForDossierTemplateId(@PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId) {
|
||||
@ -175,6 +193,7 @@ public class DossierController implements DossierResource {
|
||||
return getArchivedDossiersList(dossierService.getAllDossiersForDossierTemplateId(dossierTemplateId));
|
||||
}
|
||||
|
||||
|
||||
private List<Dossier> getArchivedDossiersList(List<DossierEntity> dossierEntityList) {
|
||||
|
||||
var archivedDossiers = convert(dossierEntityList.stream()
|
||||
@ -185,6 +204,7 @@ public class DossierController implements DossierResource {
|
||||
return archivedDossiers;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public List<Dossier> getSoftDeletedDossiers() {
|
||||
@ -270,6 +290,7 @@ public class DossierController implements DossierResource {
|
||||
|
||||
|
||||
private void addToIndexingQueue(String dossierId, List<FileModel> fileStatuses) {
|
||||
|
||||
fileStatuses.forEach(f -> indexingService.addToIndexingQueue(IndexMessageType.UPDATE, null, dossierId, f.getId(), 2));
|
||||
}
|
||||
|
||||
|
||||
@ -106,8 +106,8 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
dossierClient.hardDeleteDossiers(Sets.newHashSet(dossier.getId()));
|
||||
assertThat(dossierClient.getAllDossiers(false, false)).isEmpty();
|
||||
assertThat(dossierClient.getAllDossiers(true, false)).isEmpty();
|
||||
assertThat(dossierClient.getAllDossiers(false, true)).hasSize(1);
|
||||
assertThat(dossierClient.getAllDossiers(true, true)).hasSize(1);
|
||||
assertThat(dossierClient.getAllDossiers(false, true)).hasSize(0);
|
||||
assertThat(dossierClient.getAllDossiers(true, true)).hasSize(0);
|
||||
assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty();
|
||||
|
||||
assertThatThrownBy(() -> dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId()))).isInstanceOf(FeignException.class);
|
||||
@ -185,8 +185,8 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
dossierClient.delete(dossier1.getId());
|
||||
dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId()));
|
||||
assertThat(dossierClient.getAllDossiers(false, false)).hasSize(0);
|
||||
assertThat(dossierClient.getAllDossiers(true, false)).hasSize(2);
|
||||
assertThat(dossierClient.getAllDossiers(false, true)).hasSize(1);
|
||||
assertThat(dossierClient.getAllDossiers(true, false)).hasSize(1);
|
||||
assertThat(dossierClient.getAllDossiers(false, true)).hasSize(0);
|
||||
assertThat(dossierClient.getAllDossiers(true, true)).hasSize(2);
|
||||
assertThat(dossierClient.getArchivedDossiers()).hasSize(1);
|
||||
assertThat(dossierClient.getSoftDeletedDossiers()).hasSize(1);
|
||||
@ -216,8 +216,8 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId()));
|
||||
assertThat(dossierClient.getAllDossiers(false, false)).hasSize(0);
|
||||
assertThat(dossierClient.getAllDossiers(true, false)).hasSize(1);
|
||||
assertThat(dossierClient.getAllDossiers(false, true)).hasSize(1);
|
||||
assertThat(dossierClient.getAllDossiers(true, true)).hasSize(2);
|
||||
assertThat(dossierClient.getAllDossiers(false, true)).hasSize(0);
|
||||
assertThat(dossierClient.getAllDossiers(true, true)).hasSize(1);
|
||||
assertThat(dossierClient.getArchivedDossiers()).hasSize(1);
|
||||
assertThat(dossierClient.getSoftDeletedDossiers()).hasSize(0);
|
||||
|
||||
@ -334,6 +334,63 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetAllDossiersWithoutDeleted() {
|
||||
|
||||
var template = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
// Arrange
|
||||
var dossier1 = dossierTesterAndProvider.provideTestDossier(template, "dossier1");
|
||||
|
||||
var nonDeletedDossiers = dossierClient.getAllDossiers(true, false);
|
||||
assertThat(nonDeletedDossiers).hasSize(1);
|
||||
|
||||
|
||||
dossierClient.archiveDossiers(Set.of(dossier1.getId()));
|
||||
nonDeletedDossiers = dossierClient.getAllDossiers(true, false);
|
||||
assertThat(nonDeletedDossiers).hasSize(1);
|
||||
|
||||
dossierClient.delete(dossier1.getId());
|
||||
nonDeletedDossiers = dossierClient.getAllDossiers(true, false);
|
||||
assertThat(nonDeletedDossiers).hasSize(0);
|
||||
assertThat(dossierClient.getSoftDeletedDossiers()).hasSize(1);
|
||||
|
||||
dossierClient.hardDeleteDossiers(Set.of(dossier1.getId()));
|
||||
nonDeletedDossiers = dossierClient.getAllDossiers(true, false);
|
||||
assertThat(nonDeletedDossiers).hasSize(0);
|
||||
assertThat(dossierClient.getSoftDeletedDossiers()).hasSize(0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testCheckIncludeArchivedAndIncludeDeleted() {
|
||||
|
||||
var template = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
// Arrange
|
||||
var regularDossier = dossierTesterAndProvider.provideTestDossier(template, "regularDossier");
|
||||
var onlyArchivedDossier = dossierTesterAndProvider.provideTestDossier(template, "onlyArchivedDossier");
|
||||
var onlyDeletedDossier = dossierTesterAndProvider.provideTestDossier(template, "onlyDeletedDossier");
|
||||
var archivedAndDeletedDossier = dossierTesterAndProvider.provideTestDossier(template, "archivedAndDeletedDossier");
|
||||
var hardDeletedDossier = dossierTesterAndProvider.provideTestDossier(template, "hardDeletedDossier");
|
||||
|
||||
dossierClient.archiveDossiers(Set.of(onlyArchivedDossier.getId(), archivedAndDeletedDossier.getId()));
|
||||
dossierClient.delete(onlyDeletedDossier.getId());
|
||||
dossierClient.delete(archivedAndDeletedDossier.getId());
|
||||
dossierClient.delete(hardDeletedDossier.getId());
|
||||
dossierClient.hardDeleteDossiers(Set.of(hardDeletedDossier.getId()));
|
||||
|
||||
|
||||
// check get all dossiers with inclusions
|
||||
assertThat(dossierClient.getAllDossiers(true, true)).hasSize(4); //all without harddeleted
|
||||
assertThat(dossierClient.getAllDossiers(true, false)).hasSize(2); //regular and onlyarchived
|
||||
assertThat(dossierClient.getAllDossiers(false, true)).hasSize(2); //regular and onlydeleted
|
||||
assertThat(dossierClient.getAllDossiers(false, false)).hasSize(1); //regular
|
||||
|
||||
}
|
||||
|
||||
|
||||
private List<ReportTemplate> provideTestReportTemplates(Dossier dossier) {
|
||||
|
||||
reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user