RED-8339: rolled back signature changes in old component log endpoints #519
@ -3,6 +3,11 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller;
|
||||
import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.GET_RSS;
|
||||
import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_REDACTION_LOG;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@ -12,12 +17,14 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentLogService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.external.resource.ComponentLogResource;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLog;
|
||||
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.ComponentOverrideList;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntryValue;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
@ -51,28 +58,44 @@ public class ComponentLogController implements ComponentLogResource {
|
||||
public void addOverride(@RequestParam(name = "dossierTemplateId") String dossierTemplateId,
|
||||
@PathVariable(DOSSIER_ID) String dossierId,
|
||||
@PathVariable(FILE_ID) String fileId,
|
||||
@RequestBody ComponentLogEntry override) {
|
||||
@RequestBody ComponentsOverrides componentsOverrides) {
|
||||
|
||||
accessControlService.checkDossierExistenceAndAccessPermissionsToDossier(dossierId);
|
||||
accessControlService.validateFileResourceExistence(fileId);
|
||||
|
||||
componentLogService.addOverride(dossierId, fileId, override);
|
||||
if (componentsOverrides.getComponentOverrides() == null || componentsOverrides.getComponentOverrides().isEmpty()) {
|
||||
throw new BadRequestException("Request body cannot be empty!");
|
||||
}
|
||||
|
||||
componentsOverrides.getComponentOverrides()
|
||||
.forEach((k, v) -> {
|
||||
ComponentLogEntryValue overrideValue = ComponentLogEntryValue.builder().value(v).build();
|
||||
ComponentLogEntry override = ComponentLogEntry.builder().name(k).componentValues(List.of(overrideValue)).build();
|
||||
componentLogService.addOverride(dossierId, fileId, override);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@GetMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@PreAuthorize("hasAuthority('" + GET_RSS + "')")
|
||||
public ComponentOverrideList getOverrides(@RequestParam(name = "dossierTemplateId") String dossierTemplateId,
|
||||
@PathVariable(DOSSIER_ID) String dossierId,
|
||||
@PathVariable(FILE_ID) String fileId) {
|
||||
public ComponentsOverrides getOverrides(@RequestParam(name = "dossierTemplateId") String dossierTemplateId,
|
||||
@PathVariable(DOSSIER_ID) String dossierId,
|
||||
@PathVariable(FILE_ID) String fileId) {
|
||||
|
||||
accessControlService.checkDossierExistenceAndViewPermissionsToDossier(dossierId);
|
||||
accessControlService.validateFileResourceExistence(fileId);
|
||||
|
||||
var overrides = componentLogService.getOverrides(dossierId, fileId);
|
||||
|
||||
return ComponentOverrideList.builder().componentOverrides(overrides).build();
|
||||
Map<String, String> overridesMap = new HashMap<>();
|
||||
overrides.forEach(componentLogEntry -> {
|
||||
Optional<ComponentLogEntryValue> value = componentLogEntry.getComponentValues()
|
||||
.stream()
|
||||
.findAny();
|
||||
value.ifPresent(componentLogEntryValue -> overridesMap.put(componentLogEntry.getName(), componentLogEntryValue.getValue()));
|
||||
});
|
||||
return ComponentsOverrides.builder().componentOverrides(overridesMap).build();
|
||||
}
|
||||
|
||||
|
||||
@ -86,6 +109,10 @@ public class ComponentLogController implements ComponentLogResource {
|
||||
accessControlService.checkDossierExistenceAndAccessPermissionsToDossier(dossierId);
|
||||
accessControlService.validateFileResourceExistence(fileId);
|
||||
|
||||
if (revertOverrideRequest.getComponents() == null || revertOverrideRequest.getComponents().isEmpty()) {
|
||||
throw new BadRequestException("Request body cannot be empty!");
|
||||
}
|
||||
|
||||
componentLogService.revertOverrides(dossierId, fileId, revertOverrideRequest);
|
||||
}
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLog;
|
||||
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.ComponentOverrideList;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@ -52,7 +52,7 @@ public interface ComponentLogResource {
|
||||
void addOverride(@RequestParam(name = "dossierTemplateId") String dossierTemplateId,
|
||||
@PathVariable(DOSSIER_ID) String dossierId,
|
||||
@PathVariable(FILE_ID) String fileId,
|
||||
@RequestBody ComponentLogEntry override);
|
||||
@RequestBody ComponentsOverrides componentsOverrides);
|
||||
|
||||
|
||||
@ResponseBody
|
||||
@ -60,9 +60,9 @@ public interface ComponentLogResource {
|
||||
@GetMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@Operation(summary = "Gets overrides for components", description = "None")
|
||||
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "404", description = "Not found")})
|
||||
ComponentOverrideList getOverrides(@RequestParam(name = "dossierTemplateId") String dossierTemplateId,
|
||||
@PathVariable(DOSSIER_ID) String dossierId,
|
||||
@PathVariable(FILE_ID) String fileId);
|
||||
ComponentsOverrides getOverrides(@RequestParam(name = "dossierTemplateId") String dossierTemplateId,
|
||||
@PathVariable(DOSSIER_ID) String dossierId,
|
||||
@PathVariable(FILE_ID) String fileId);
|
||||
|
||||
|
||||
@ResponseBody
|
||||
|
||||
@ -5,7 +5,9 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
@ -19,9 +21,7 @@ import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemp
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntityReference;
|
||||
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.ComponentLogEntryValue;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType;
|
||||
import com.iqser.red.service.persistence.service.v2.api.external.model.Component;
|
||||
@ -185,21 +185,9 @@ public class ComponentOverrideTest extends AbstractPersistenceServerServiceTest
|
||||
.findAny()
|
||||
.get().isOverridden());
|
||||
|
||||
ComponentLogEntry componentOverrideModel4 = ComponentLogEntry.builder()
|
||||
.name("Study_Title")
|
||||
.componentValues(List.of(ComponentLogEntryValue.builder()
|
||||
.value("BBBB Strange Chemical Name And the rest of a title – With a dash and some more text")
|
||||
.valueDescription("First found value of type title or else ''")
|
||||
.componentRuleId("StudyTitle.0.0")
|
||||
.componentLogEntityReferences(List.of(ComponentLogEntityReference.builder()
|
||||
.id("cf7f0d0c4c07918ce7d67b204f5fdb7d")
|
||||
.type("title")
|
||||
.entityRuleId("DOC.6.1")
|
||||
.page(1)
|
||||
.build()))
|
||||
.build()))
|
||||
.build();
|
||||
|
||||
Map<String, String> componentOverrides = new HashMap<>();
|
||||
componentOverrides.put("Study_Title", "BBBB Strange Chemical Name And the rest of a title – With a dash and some more text");
|
||||
ComponentsOverrides componentOverrideModel4 = ComponentsOverrides.builder().componentOverrides(componentOverrides).build();
|
||||
componentLogClient.addOverride(dossierTemplate.getId(), dossier.getId(), file.getId(), componentOverrideModel4);
|
||||
|
||||
overridesFromOldEndpoint = componentLogClient.getComponentLog(dossier.getId(), file.getId(), true);
|
||||
|
||||
@ -1,7 +1,9 @@
|
||||
package com.iqser.red.service.persistence.service.v1.api.shared.model.component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntry;
|
||||
|
||||
@ -14,8 +16,8 @@ import lombok.NoArgsConstructor;
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ComponentOverrideList {
|
||||
public class ComponentsOverrides {
|
||||
|
||||
List<ComponentLogEntry> componentOverrides = new ArrayList<>();
|
||||
private Map<String, String> componentOverrides = new HashMap<>();
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user