RED-2325 Dossier Stats Endpoint

-rework after comments, including integration tests
This commit is contained in:
devplant 2021-10-11 10:42:01 +03:00
parent b688da9c56
commit 43f7bc0327
3 changed files with 8 additions and 1 deletions

View File

@ -14,13 +14,13 @@ import java.util.Map;
@NoArgsConstructor
@AllArgsConstructor
public class DossierStats {
@JsonProperty("dossierId")
private String dossierId;
private int numberOfFiles;
private int numberOfAnalysedPages; // sum of analysedPages
private boolean hasRedactionsFilePresent; // true if at least one file in the dossier has redactions
private boolean hasHintsNoRedactionsFilePresent; // true if at least one file in the dossier has hints but doesn't have redactions
private boolean hasSuggestionsFilePresent; // true if at least one file in the dossier has suggestions
private boolean hasUpdatesFilePresent; //true if at least one file in the dossier has updates
private boolean hasNoFlagsFilePresent; // true if at least one file in the dossier has none of the other flags
private Map<FileStatus,Integer> fileCountPerStatus;
}

View File

@ -45,9 +45,13 @@ public class DossierStatsService {
files.stream().filter(FileEntity::isHasSuggestions).findAny().ifPresent(
(v) -> dossierStats.setHasSuggestionsFilePresent(true)
);
files.stream().filter(FileEntity::isHasUpdates).findAny().ifPresent(
(v) -> dossierStats.setHasUpdatesFilePresent(true)
);
files.stream().filter(f -> !f.isHasRedactions())
.filter(f -> !f.isHasHints())
.filter(f -> !f.isHasSuggestions())
.filter(f -> !f.isHasUpdates())
.findAny().ifPresent(
(v) -> dossierStats.setHasNoFlagsFilePresent(true)
);

View File

@ -53,6 +53,7 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest {
file.setNumberOfAnalyses(NUMBER_PAGES_ANALYZED);
file.setHasRedactions(true);
file.setHasHints(true);
file.setHasUpdates(true);
fileRepository.save(file);
});
loadedFile1 = fileClient.getFileStatus(dossier1.getId(), file1.getId());
@ -86,6 +87,7 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest {
assertThat(dossierStats.isHasRedactionsFilePresent()).isTrue();
assertThat(dossierStats.isHasHintsNoRedactionsFilePresent()).isFalse();
assertThat(dossierStats.isHasSuggestionsFilePresent()).isTrue();
assertThat(dossierStats.isHasUpdatesFilePresent()).isTrue();
assertThat(dossierStats.isHasNoFlagsFilePresent()).isFalse();
assertThat(dossierStats.getFileCountPerStatus().get(FileStatus.PROCESSING)).isEqualTo(2);
}
@ -105,6 +107,7 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest {
assertThat(dossierStats2.isHasRedactionsFilePresent()).isFalse();
assertThat(dossierStats2.isHasHintsNoRedactionsFilePresent()).isTrue();
assertThat(dossierStats2.isHasSuggestionsFilePresent()).isFalse();
assertThat(dossierStats2.isHasUpdatesFilePresent()).isFalse();
assertThat(dossierStats2.isHasNoFlagsFilePresent()).isTrue();
assertThat(dossierStats2.getFileCountPerStatus().get(FileStatus.PROCESSING)).isEqualTo(1);
assertThat(dossierStats2.getFileCountPerStatus().get(FileStatus.APPROVED)).isEqualTo(1);