Pull request #152: RED-2439: Calculate surrounding text for manual redactions

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

* commit 'a6c3cc864a84d09414bb50ec99ac6e1453c34f30':
  RED-2439: Calculate surrounding text for manual redactions
This commit is contained in:
Dominique Eiflaender 2021-12-10 12:06:22 +01:00
commit 01aebdd8f2
3 changed files with 25 additions and 1 deletions

View File

@ -34,4 +34,8 @@ public interface ManualRedactionRepository extends JpaRepository<ManualRedaction
@Query("select m from ManualRedactionEntryEntity m where m.id.fileId = :fileId and (:includeDeletions = true or m.softDeletedTime is null)")
List<ManualRedactionEntryEntity> findByFileIdIncludeDeletions(String fileId, boolean includeDeletions);
@Modifying
@Query("update ManualRedactionEntryEntity m set m.textBefore = :textBefore, m.textAfter = :textAfter where m.id = :id")
void updateSurroundingText(AnnotationEntityId id, String textBefore, String textAfter);
}

View File

@ -3,13 +3,16 @@ package com.iqser.red.service.peristence.v1.server.service;
import com.google.common.collect.Sets;
import com.google.common.hash.HashFunction;
import com.google.common.hash.Hashing;
import com.iqser.red.service.peristence.v1.server.client.RedactionClient;
import com.iqser.red.service.peristence.v1.server.controller.DictionaryController;
import com.iqser.red.service.peristence.v1.server.utils.ManualRedactionMapper;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.*;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity;
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.*;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ManualRedactionRepository;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.*;
import com.iqser.red.service.redaction.v1.model.RedactionLog;
import com.iqser.red.service.redaction.v1.model.RedactionLogEntry;
@ -23,7 +26,9 @@ import java.time.OffsetDateTime;
import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
import static com.iqser.red.service.persistence.management.v1.processor.utils.TypeIdUtils.toTypeId;
@Slf4j
@ -46,6 +51,8 @@ public class ManualRedactionService {
private final ManualRedactionProviderService manualRedactionProviderService;
private final AnalysisFlagsCalculationService analysisFlagsCalculationService;
private final StopwordService stopwordService;
private final RedactionClient redactionClient;
private final ManualRedactionRepository manualRedactionRepository;
private final HashFunction hashFunction = Hashing.murmur3_128();
@ -93,6 +100,19 @@ public class ManualRedactionService {
analysisFlagsCalculationService.calculateFlags(dossierId, fileId);
}
// TODO This is just a proof of concept.
var loaded = convert(getAddRedaction(fileId, annotationId), ManualRedactionEntry.class, new ManualRedactionMapper());
ManualRedactions manualRedactions = ManualRedactions.builder()
.entriesToAdd(Set.of(loaded))
.build();
var withSurroundingText = redactionClient.addSurroundingText(dossierId, fileId, manualRedactions);
if(withSurroundingText != null) {
withSurroundingText.getEntriesToAdd().forEach(e -> {
manualRedactionRepository.updateSurroundingText(new AnnotationEntityId(annotationId, fileId), e.getTextBefore(), e
.getTextAfter());
});
}
return ManualAddResponse.builder().annotationId(annotationId).commentId(commentId).build();
}

View File

@ -24,7 +24,7 @@
</modules>
<properties>
<redaction-service.version>3.36.0</redaction-service.version>
<redaction-service.version>3.40.0</redaction-service.version>
<search-service.version>2.10.0</search-service.version>
<pdftron-redaction-service.version>3.17.0</pdftron-redaction-service.version>
<redaction-report-service.version>3.19.0</redaction-report-service.version>