Merge branch 'DM-285' into 'master'
DM-285: Change component log Closes DM-285 See merge request redactmanager/persistence-service!134
This commit is contained in:
commit
45b879982b
@ -1,7 +1,6 @@
|
||||
package com.iqser.red.persistence.service.v1.external.api.impl.controller;
|
||||
|
||||
import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_REDACTION_LOG;
|
||||
import static com.iqser.red.service.persistence.management.v1.processor.service.FeignExceptionHandler.processFeignException;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -18,7 +17,6 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.FilteredEntityLogRequest;
|
||||
|
||||
import feign.FeignException;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@RestController
|
||||
@ -36,11 +34,7 @@ public class AnalysisLogController implements AnalysisLogResource {
|
||||
@RequestParam(value = "withManualRedactions", required = false, defaultValue = "true") boolean withManualRedactions,
|
||||
@RequestParam(value = "includeFalsePositives", required = false, defaultValue = "false") boolean includeFalsePositives) {
|
||||
|
||||
try {
|
||||
return entityLogService.getEntityLog(dossierId, fileId, excludedTypes);
|
||||
} catch (FeignException e) {
|
||||
throw processFeignException(e);
|
||||
}
|
||||
return entityLogService.getEntityLog(dossierId, fileId, excludedTypes);
|
||||
}
|
||||
|
||||
|
||||
@ -49,23 +43,14 @@ public class AnalysisLogController implements AnalysisLogResource {
|
||||
@PathVariable(FILE_ID) String fileId,
|
||||
@RequestBody FilteredEntityLogRequest filteredEntityLogRequest) {
|
||||
|
||||
try {
|
||||
return entityLogService.getFilteredEntityLog(dossierId, fileId, filteredEntityLogRequest);
|
||||
} catch (FeignException e) {
|
||||
throw processFeignException(e);
|
||||
}
|
||||
|
||||
return entityLogService.getFilteredEntityLog(dossierId, fileId, filteredEntityLogRequest);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ComponentLog getComponentLog(String dossierId, String fileId) {
|
||||
|
||||
try {
|
||||
return componentLogService.getComponentLog(dossierId, fileId);
|
||||
} catch (FeignException e) {
|
||||
throw processFeignException(e);
|
||||
}
|
||||
return componentLogService.getComponentLog(dossierId, fileId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,29 +1,34 @@
|
||||
package com.iqser.red.persistence.service.v2.external.api.impl.controller;
|
||||
|
||||
import static com.iqser.red.service.persistence.service.v2.api.external.resource.DossierResource.DOSSIER_ID_PARAM;
|
||||
import static com.iqser.red.service.persistence.service.v2.api.external.resource.DossierTemplateResource.DOSSIER_TEMPLATE_ID_PARAM;
|
||||
import static com.iqser.red.service.persistence.service.v2.api.external.resource.FileResource.FILE_ID_PARAM;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.iqser.red.persistence.service.v1.external.api.impl.controller.AnalysisLogController;
|
||||
import com.iqser.red.persistence.service.v1.external.api.impl.controller.DossierTemplateController;
|
||||
import com.iqser.red.persistence.service.v1.external.api.impl.controller.StatusController;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentOverrideService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentEntityReference;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogCategory;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntry;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.Component;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentValue;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.EntityReference;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides;
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.model.Component;
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.model.Entity;
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.model.FileComponents;
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.model.FileComponentsList;
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.resource.ComponentResource;
|
||||
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import static com.iqser.red.service.persistence.service.v2.api.external.resource.DossierResource.DOSSIER_ID_PARAM;
|
||||
import static com.iqser.red.service.persistence.service.v2.api.external.resource.DossierTemplateResource.DOSSIER_TEMPLATE_ID_PARAM;
|
||||
import static com.iqser.red.service.persistence.service.v2.api.external.resource.FileResource.FILE_ID_PARAM;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@ -48,47 +53,48 @@ public class ComponentControllerV2 implements ComponentResource {
|
||||
var overrides = componentOverrideService.getOverrides(dossierId, fileId);
|
||||
|
||||
Map<String, List<String>> components = new HashMap<>();
|
||||
List<ComponentLogCategory> componentLogCategories = componentLog.getComponentLogCategories();
|
||||
List<Component> componentLogCategories = componentLog.getComponents();
|
||||
if (componentLogCategories != null && !componentLogCategories.isEmpty()) {
|
||||
componentLogCategories.forEach(c -> {
|
||||
|
||||
if (overrides.getComponentOverrides() != null && overrides.getComponentOverrides().containsKey(c.getCategory())) {
|
||||
components.computeIfAbsent(c.getCategory(), (x) -> new ArrayList<>()).add(overrides.getComponentOverrides().get(c.getCategory()));
|
||||
if (overrides.getComponentOverrides() != null && overrides.getComponentOverrides().containsKey(c.getName())) {
|
||||
components.computeIfAbsent(c.getName(), (x) -> new ArrayList<>()).add(overrides.getComponentOverrides().get(c.getName()));
|
||||
} else {
|
||||
components.computeIfAbsent(c.getCategory(), (x) -> new ArrayList<>()).addAll(c.getComponentLogEntries().stream().map(ComponentLogEntry::getValue).toList());
|
||||
components.computeIfAbsent(c.getName(), (x) -> new ArrayList<>()).addAll(c.getComponentValues().stream().map(ComponentValue::getValue).toList());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Map<String, List<Component>> componentsDetails = new HashMap<>();
|
||||
Map<String, List<com.iqser.red.service.persistence.service.v2.api.external.model.Component>> componentsDetails = new HashMap<>();
|
||||
if (includeDetails) {
|
||||
componentLog.getComponentLogCategories().forEach(c -> {
|
||||
componentsDetails.computeIfAbsent(c.getCategory(), (x) -> new ArrayList<>()).addAll(c.getComponentLogEntries().stream().map(entry -> convert(entry, overrides, c.getCategory())).toList());
|
||||
componentLog.getComponents().forEach(c -> {
|
||||
componentsDetails.computeIfAbsent(c.getName(), (x) -> new ArrayList<>())
|
||||
.addAll(c.getComponentValues().stream().map(entry -> convert(entry, overrides, c.getName())).toList());
|
||||
});
|
||||
}
|
||||
|
||||
return FileComponents.builder().dossierTemplateId(dossierTemplateId).dossierId(dossierId).fileId(fileId).components(components).componentDetails(componentsDetails).build();
|
||||
}
|
||||
|
||||
private Component convert(ComponentLogEntry componentLogEntry, ComponentsOverrides overrides, String category) {
|
||||
|
||||
return Component.builder()
|
||||
.componentRule(componentLogEntry.getMatchedRule())
|
||||
.entityReferences(componentLogEntry.getComponentEntityReferences().stream().map(this::convertComponentEntityReference).toList())
|
||||
.originalValues(List.of(componentLogEntry.getValue()))
|
||||
.values(overrides.getComponentOverrides().containsKey(category) ? List.of(overrides.getComponentOverrides().get(category)) : List.of(componentLogEntry.getValue()))
|
||||
private com.iqser.red.service.persistence.service.v2.api.external.model.Component convert(ComponentValue componentValue, ComponentsOverrides overrides, String category) {
|
||||
|
||||
return com.iqser.red.service.persistence.service.v2.api.external.model.Component.builder()
|
||||
.componentRule(componentValue.getComponentRuleId())
|
||||
.entityReferences(componentValue.getEntityReferences().stream().map(this::convertComponentEntityReference).toList())
|
||||
.originalValues(List.of(componentValue.getValue()))
|
||||
.values(overrides.getComponentOverrides().containsKey(category) ? List.of(overrides.getComponentOverrides().get(category)) : List.of(componentValue.getValue()))
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
private Entity convertComponentEntityReference(ComponentEntityReference componentEntityReference) {
|
||||
private Entity convertComponentEntityReference(EntityReference entityReference) {
|
||||
|
||||
return Entity.builder()
|
||||
.id(componentEntityReference.getId())
|
||||
.entityRule(componentEntityReference.getRuleIdentifier())
|
||||
.type(componentEntityReference.getType())
|
||||
.pages(Set.of(componentEntityReference.getPage()))
|
||||
.value(componentEntityReference.getValue())
|
||||
.id(entityReference.getId())
|
||||
.entityRule(entityReference.getEntityRuleId())
|
||||
.type(entityReference.getType())
|
||||
.pages(Set.of(entityReference.getPage()))
|
||||
.build();
|
||||
}
|
||||
|
||||
@ -103,5 +109,4 @@ public class ComponentControllerV2 implements ComponentResource {
|
||||
return new FileComponentsList(dossierFiles.stream().map(file -> getComponents(dossierTemplateId, dossierId, file.getFileId(), includeDetails)).toList());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -12,9 +12,9 @@ import lombok.experimental.FieldDefaults;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class ComponentLogCategory {
|
||||
public class Component {
|
||||
|
||||
String category;
|
||||
List<ComponentLogEntry> componentLogEntries;
|
||||
String name;
|
||||
List<ComponentValue> componentValues;
|
||||
|
||||
}
|
||||
@ -16,10 +16,7 @@ import lombok.experimental.FieldDefaults;
|
||||
public class ComponentLog {
|
||||
|
||||
int analysisNumber;
|
||||
List<ComponentLogCategory> componentLogCategories = new ArrayList<>();
|
||||
|
||||
long dictionaryVersion = -1;
|
||||
long dossierDictionaryVersion = -1;
|
||||
long rulesVersion = -1;
|
||||
long componentRulesVersion = -1;
|
||||
List<Component> components = new ArrayList<>();
|
||||
|
||||
}
|
||||
|
||||
@ -14,12 +14,13 @@ import lombok.experimental.FieldDefaults;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class ComponentLogEntry {
|
||||
public class ComponentValue {
|
||||
|
||||
String value;
|
||||
String transformation;
|
||||
String matchedRule;
|
||||
String originalValue;
|
||||
String valueDescription;
|
||||
String componentRuleId;
|
||||
|
||||
List<ComponentEntityReference> componentEntityReferences;
|
||||
List<EntityReference> entityReferences;
|
||||
|
||||
}
|
||||
@ -12,13 +12,11 @@ import lombok.experimental.FieldDefaults;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class ComponentEntityReference {
|
||||
public class EntityReference {
|
||||
|
||||
String id;
|
||||
String value;
|
||||
String type;
|
||||
String entityRuleId;
|
||||
int page;
|
||||
String ruleIdentifier;
|
||||
String reason;
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user