Pull request #355: RED-3880: Delete all false_positive manual redaction in migration

Merge in RED/persistence-service from RED-3880 to master

* commit '5d184623a96b7d080f28017f7cb17d0f5134ffa1':
  RED-3880: Delete all false_positive manual redaction in migration
This commit is contained in:
Dominique Eiflaender 2022-04-13 14:54:34 +02:00
commit 447bd797bc
2 changed files with 74 additions and 0 deletions

View File

@ -10,6 +10,7 @@ import com.iqser.red.service.peristence.v1.server.migration.migrations.Dictionar
import com.iqser.red.service.peristence.v1.server.migration.migrations.EntityTypesMigration4;
import com.iqser.red.service.peristence.v1.server.migration.migrations.IndexMigration1;
import com.iqser.red.service.peristence.v1.server.migration.migrations.MigrateHighlights3;
import com.iqser.red.service.peristence.v1.server.migration.migrations.RemoveFalsePositiveManualRedactions6;
import com.iqser.red.service.peristence.v1.server.migration.migrations.TypeToEntityMigration5;
import com.iqser.red.service.peristence.v1.server.settings.FileManagementServiceSettings;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.MigrationPersistenceService;
@ -31,6 +32,7 @@ public class MigrationStarterService {
private final MigrateHighlights3 migrateHighlights3;
private final EntityTypesMigration4 entityTypesMigration4;
private final TypeToEntityMigration5 typeToEntityMigration5;
private final RemoveFalsePositiveManualRedactions6 removeFalsePositiveManualRedactions6;
private final FileManagementServiceSettings settings;
private final ApplicationContext ctx;
@ -52,6 +54,7 @@ public class MigrationStarterService {
migrateHighlights3.run();
entityTypesMigration4.run();
typeToEntityMigration5.run();
removeFalsePositiveManualRedactions6.run();
log.info("Migration is finished");
System.exit(SpringApplication.exit(ctx, () -> 0));

View File

@ -0,0 +1,71 @@
package com.iqser.red.service.peristence.v1.server.migration.migrations;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.iqser.red.service.peristence.v1.server.controller.ManualRedactionController;
import com.iqser.red.service.peristence.v1.server.migration.Migration;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Setter
@Service
public class RemoveFalsePositiveManualRedactions6 extends Migration {
private static final String NAME = "Remove false positives manual redactions";
private static final long VERSION = 6;
@Autowired
private DossierPersistenceService dossierPersistenceService;
@Autowired
private FileStatusPersistenceService fileStatusPersistenceService;
@Autowired
private ManualRedactionController manualRedactionController;
public RemoveFalsePositiveManualRedactions6() {
super(NAME, VERSION);
}
@Override
protected void migrate() {
var dossiers = dossierPersistenceService.findAllDossiers();
dossiers.forEach(dossier -> {
var files = fileStatusPersistenceService.getStatusesForDossier(dossier.getId());
files.forEach(file -> {
if (file.getDeleted() == null) {
var annotationIdsToRemove = new ArrayList<String>();
var manualRedactions = manualRedactionController.getManualRedactions(dossier.getId(), file.getId());
if (manualRedactions != null && manualRedactions.getEntriesToAdd() != null) {
manualRedactions.getEntriesToAdd().forEach(addRedaction -> {
if (addRedaction.getType().contains("false_positive")) {
annotationIdsToRemove.add(addRedaction.getAnnotationId());
}
});
}
if (!annotationIdsToRemove.isEmpty()) {
manualRedactionController.deleteAddRedaction(dossier.getId(), file.getId(), annotationIdsToRemove);
}
}
});
});
}
}