Pull request #94: Fixes

Merge in RED/persistence-service from fixes to master

* commit '615e5bba55fdfe44611ca2b512a98b043f3ad4d2':
  test fix
  test fixes
  fixed since requests
This commit is contained in:
Timo Bejan 2021-11-01 08:41:39 +01:00
commit 093fabcd0b
13 changed files with 30 additions and 26 deletions

View File

@ -20,8 +20,6 @@ public class CreateOrUpdateDossierRequest {
private String dossierName;
private OffsetDateTime date;
private String description;
private String ownerId;

View File

@ -17,7 +17,8 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.do
public class DossierStats {
private String dossierId;
private int numberOfFiles;
private int numberOfAnalysedPages; // sum of analysedPages
private int numberOfPages; // sum of pages
private int numberOfExcludedPages; // sum of excludedPages
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

View File

@ -24,14 +24,12 @@ public interface DossierResource {
String INCLUDE_DELETED_PARAM = "includeDeleted";
String SINCE_REQUEST_PARAM="since";
String CHANGES_PATH = "/has-changes";
@ResponseBody
@ResponseStatus(value = HttpStatus.OK)
@GetMapping(value = REST_PATH+CHANGES_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
JSONPrimitive<Boolean> hasChangesSince(@RequestParam(SINCE_REQUEST_PARAM) OffsetDateTime since);
@PostMapping(value = REST_PATH+CHANGES_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
JSONPrimitive<Boolean> hasChangesSince(@RequestBody JSONPrimitive<OffsetDateTime> since);
@PostMapping(value = REST_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
Dossier addDossier(@RequestBody CreateOrUpdateDossierRequest dossierRequest);

View File

@ -24,13 +24,12 @@ public interface NotificationResource {
String INCLUDE_SEEN_PARAM = "includeSeen";
String SET_SEEN_PARAM = "setSeen";
String SET_READ_PARAM = "setRead";
String SINCE_REQUEST_PARAM = "since";
@ResponseBody
@ResponseStatus(value = HttpStatus.OK)
@GetMapping(value = NOTIFICATION_PATH + CHANGES_PATH + USER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE)
@PostMapping(value = NOTIFICATION_PATH + CHANGES_PATH + USER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE)
JSONPrimitive<Boolean> hasNewNotificationsSince(@PathVariable(USER_ID_PARAM) String userId,
@RequestParam(SINCE_REQUEST_PARAM) OffsetDateTime since);
@RequestBody JSONPrimitive<OffsetDateTime> since);
@PostMapping(value = NOTIFICATION_PATH, consumes = MediaType.APPLICATION_JSON_VALUE)
void addNotification(@RequestBody AddNotificationRequest addNotificationRequest);

View File

@ -26,8 +26,6 @@ public interface StatusResource {
String APPROVER_ID_REQUEST_PARAM = "approverId";
String REVIEWER_ID_REQUEST_PARAM = "reviewerId";
String SINCE_REQUEST_PARAM="since";
@ResponseBody
@ -37,8 +35,8 @@ public interface StatusResource {
@ResponseBody
@ResponseStatus(value = HttpStatus.OK)
@GetMapping(value = STATUS_PATH+DOSSIER_ID_PATH_PARAM+CHANGES_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
JSONPrimitive<Boolean> hasChangesSince(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestParam(SINCE_REQUEST_PARAM) OffsetDateTime since);
@PostMapping(value = STATUS_PATH+DOSSIER_ID_PATH_PARAM+CHANGES_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
JSONPrimitive<Boolean> hasChangesSince(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody JSONPrimitive<OffsetDateTime> since);
@ResponseBody
@ResponseStatus(value = HttpStatus.OK)

View File

@ -202,6 +202,11 @@ public class FileStatusPersistenceService {
}
public List<FileEntity> getActiveFiles(String dossierId) {
return fileRepository.findByDossierId(dossierId).stream().filter(f -> !isFileDeleted(f)).collect(Collectors.toList());
}
public List<FileEntity> getStatusesForDossier(String dossierId) {
return fileRepository.findByDossierId(dossierId);

View File

@ -41,9 +41,9 @@ public class DossierController implements DossierResource {
@Override
public JSONPrimitive<Boolean> hasChangesSince(@RequestParam(SINCE_REQUEST_PARAM) OffsetDateTime since) {
public JSONPrimitive<Boolean> hasChangesSince(@RequestBody JSONPrimitive<OffsetDateTime> since) {
return JSONPrimitive.of(dossierService.hasChangesSince(since));
return JSONPrimitive.of(dossierService.hasChangesSince(since.getValue()));
}

View File

@ -42,9 +42,9 @@ public class FileStatusController implements StatusResource {
@Override
public JSONPrimitive<Boolean> hasChangesSince(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
@RequestParam(SINCE_REQUEST_PARAM) OffsetDateTime since) {
@RequestBody JSONPrimitive<OffsetDateTime> since){
return JSONPrimitive.of(fileStatusService.hasChangesSince(dossierId,since));
return JSONPrimitive.of(fileStatusService.hasChangesSince(dossierId,since.getValue()));
}

View File

@ -27,8 +27,8 @@ public class NotificationController implements NotificationResource {
private final NotificationPreferencesPersistenceService notificationPreferencesPersistenceService;
@Override
public JSONPrimitive<Boolean> hasNewNotificationsSince(String userId, OffsetDateTime since) {
return JSONPrimitive.of(notificationPersistenceService.hasNewNotificationsSince(userId, since));
public JSONPrimitive<Boolean> hasNewNotificationsSince(@PathVariable(USER_ID_PARAM) String userId, @RequestBody JSONPrimitive<OffsetDateTime> since) {
return JSONPrimitive.of(notificationPersistenceService.hasNewNotificationsSince(userId, since.getValue()));
}
public void addNotification(@RequestBody AddNotificationRequest addNotificationRequest) {

View File

@ -33,9 +33,10 @@ public class DossierStatsService {
}
dossierStats.setDossierId(dossierId);
// get the associated files
List<FileEntity> files = fileStatusService.getDossierStatus(dossierId);
List<FileEntity> files = fileStatusService.getActiveFiles(dossierId);
dossierStats.setNumberOfFiles(files.size());
dossierStats.setNumberOfAnalysedPages(files.stream().mapToInt(FileEntity::getNumberOfAnalyses).sum());
dossierStats.setNumberOfPages(files.stream().mapToInt(FileEntity::getNumberOfPages).sum());
dossierStats.setNumberOfExcludedPages(files.stream().mapToInt(f -> f.getExcludedPages().size()).sum());
files.stream().filter(FileEntity::isHasRedactions).findAny().ifPresent(
(v) -> dossierStats.setHasRedactionsFilePresent(true)
);

View File

@ -50,6 +50,11 @@ public class FileStatusService {
private final AddRedactionPersistenceService addRedactionPersistenceService;
private final ResizeRedactionPersistenceService resizeRedactionPersistenceService;
public List<FileEntity> getActiveFiles(String dossierId) {
return fileStatusPersistenceService.getActiveFiles(dossierId);
}
public List<FileEntity> getDossierStatus(String dossierId) {

View File

@ -55,7 +55,7 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest {
var loadedFile1 = fileClient.getFileStatus(dossier1.getId(), file1.getId());
assertThat(loadedFile1.isHasRedactions()).isFalse();
fileRepository.findById(file1.getId()).ifPresent((file) -> {
file.setNumberOfAnalyses(NUMBER_PAGES_ANALYZED);
file.setNumberOfPages(NUMBER_PAGES_ANALYZED);
file.setHasRedactions(true);
file.setHasHints(true);
file.setHasUpdates(true);
@ -88,7 +88,7 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest {
DossierStats dossierStats = dossierStatsClient.getDossierStats(dossier1.getId());
assertThat(dossierStats.getDossierId()).isEqualTo(dossier1.getId());
assertThat(dossierStats.getNumberOfFiles()).isEqualTo(2);
assertThat(dossierStats.getNumberOfAnalysedPages()).isEqualTo(NUMBER_PAGES_ANALYZED);
assertThat(dossierStats.getNumberOfPages()).isEqualTo(NUMBER_PAGES_ANALYZED);
assertThat(dossierStats.isHasRedactionsFilePresent()).isTrue();
assertThat(dossierStats.isHasHintsNoRedactionsFilePresent()).isFalse();
assertThat(dossierStats.isHasSuggestionsFilePresent()).isTrue();
@ -108,7 +108,7 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest {
// get the result for dossier2
DossierStats dossierStats = dossierStatsList.stream().filter(d -> d.getDossierId().equals(dossier2.getId())).findAny().get();
assertThat(dossierStats.getNumberOfFiles()).isEqualTo(2);
assertThat(dossierStats.getNumberOfAnalysedPages()).isEqualTo(0);
assertThat(dossierStats.getNumberOfPages()).isEqualTo(0);
assertThat(dossierStats.isHasRedactionsFilePresent()).isFalse();
assertThat(dossierStats.isHasHintsNoRedactionsFilePresent()).isTrue();
assertThat(dossierStats.isHasSuggestionsFilePresent()).isFalse();

View File

@ -86,7 +86,6 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes
dossierClient.updateDossier(CreateOrUpdateDossierRequest.builder()
.dossierName(dossier.getDossierName())
.date(dossier.getDate())
.description(dossier.getDescription())
.ownerId(dossier.getOwnerId())
.memberIds(dossier.getMemberIds())