Merge branch 'DM-498' into 'master'

DM-498 - Fix 500 internal server error when overrides do not exist

Closes DM-498

See merge request redactmanager/persistence-service!131
This commit is contained in:
Andrei Isvoran 2023-09-21 14:10:45 +02:00
commit 0b7a925757
2 changed files with 16 additions and 9 deletions

View File

@ -5,6 +5,7 @@ import com.iqser.red.persistence.service.v1.external.api.impl.controller.Dossier
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.component.ComponentsOverrides;
import com.iqser.red.service.persistence.service.v2.api.external.model.Component;
@ -47,14 +48,17 @@ public class ComponentControllerV2 implements ComponentResource {
var overrides = componentOverrideService.getOverrides(dossierId, fileId);
Map<String, List<String>> components = new HashMap<>();
componentLog.getComponentLogCategories().forEach(c -> {
List<ComponentLogCategory> componentLogCategories = componentLog.getComponentLogCategories();
if (componentLogCategories != null && !componentLogCategories.isEmpty()) {
componentLogCategories.forEach(c -> {
if (overrides.getComponentOverrides().containsKey(c.getCategory())) {
components.computeIfAbsent(c.getCategory(), (x) -> new ArrayList<>()).add(overrides.getComponentOverrides().get(c.getCategory()));
} else {
components.computeIfAbsent(c.getCategory(), (x) -> new ArrayList<>()).addAll(c.getComponentLogEntries().stream().map(ComponentLogEntry::getValue).toList());
}
});
if (overrides.getComponentOverrides() != null && overrides.getComponentOverrides().containsKey(c.getCategory())) {
components.computeIfAbsent(c.getCategory(), (x) -> new ArrayList<>()).add(overrides.getComponentOverrides().get(c.getCategory()));
} else {
components.computeIfAbsent(c.getCategory(), (x) -> new ArrayList<>()).addAll(c.getComponentLogEntries().stream().map(ComponentLogEntry::getValue).toList());
}
});
}
Map<String, List<Component>> componentsDetails = new HashMap<>();
if (includeDetails) {

View File

@ -39,9 +39,12 @@ public class ComponentOverrideService {
@SneakyThrows
public ComponentsOverrides getOverrides(String dossierId, String fileId) {
var exists = fileManagementStorageService.objectExists(dossierId, fileId, FileType.COMPONENTS);
if (!exists) {
return ComponentsOverrides.builder().build();
}
var existingComponentsBytes = fileManagementStorageService.getStoredObjectBytes(dossierId, fileId, FileType.COMPONENTS);
var existingComponents = objectMapper.readValue(existingComponentsBytes, ComponentsOverrides.class);
return existingComponents;
return objectMapper.readValue(existingComponentsBytes, ComponentsOverrides.class);
}