RED-8339: Fixes
This commit is contained in:
parent
23cf4cf5e9
commit
adb6332bf5
@ -9,14 +9,15 @@ import org.springframework.web.bind.annotation.GetMapping;
|
|||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import org.springframework.web.servlet.view.RedirectView;
|
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService;
|
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.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.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.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.analysislog.componentlog.ComponentLogEntry;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentOverrideModelList;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest;
|
||||||
|
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
@ -47,40 +48,45 @@ public class ComponentLogController implements ComponentLogResource {
|
|||||||
|
|
||||||
@PostMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@PreAuthorize("hasAuthority('" + GET_RSS + "')")
|
@PreAuthorize("hasAuthority('" + GET_RSS + "')")
|
||||||
public RedirectView addOverride(String dossierTemplateId,
|
public void addOverride(@RequestParam(name = "dossierTemplateId") String dossierTemplateId,
|
||||||
@PathVariable(DOSSIER_ID) String dossierId,
|
@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
@PathVariable(FILE_ID) String fileId,
|
@PathVariable(FILE_ID) String fileId,
|
||||||
@RequestBody ComponentLogEntry override) {
|
@RequestBody ComponentLogEntry override) {
|
||||||
|
|
||||||
accessControlService.checkDossierExistenceAndAccessPermissionsToDossier(dossierId);
|
accessControlService.checkDossierExistenceAndAccessPermissionsToDossier(dossierId);
|
||||||
accessControlService.validateFileResourceExistence(fileId);
|
accessControlService.validateFileResourceExistence(fileId);
|
||||||
|
|
||||||
return new RedirectView(String.format("/api/dossier-templates/{%s}/dossiers/{%s}/files/{%s}/overrides", dossierTemplateId, dossierId, fileId), true);
|
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)
|
@GetMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@PreAuthorize("hasAuthority('" + GET_RSS + "')")
|
@PreAuthorize("hasAuthority('" + GET_RSS + "')")
|
||||||
public RedirectView getOverrides(String dossierTemplateId, @PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId) {
|
public ComponentOverrideModelList getOverrides(@RequestParam(name = "dossierTemplateId") String dossierTemplateId,
|
||||||
|
@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
|
@PathVariable(FILE_ID) String fileId) {
|
||||||
|
|
||||||
accessControlService.checkDossierExistenceAndViewPermissionsToDossier(dossierId);
|
accessControlService.checkDossierExistenceAndViewPermissionsToDossier(dossierId);
|
||||||
accessControlService.validateFileResourceExistence(fileId);
|
accessControlService.validateFileResourceExistence(fileId);
|
||||||
|
|
||||||
return new RedirectView(String.format("/api/dossier-templates/{%s}/dossiers/{%s}/files/{%s}/overrides", dossierTemplateId, dossierId, fileId), true);
|
var overrides = componentLogService.getOverrides(dossierId, fileId);
|
||||||
|
|
||||||
|
return ComponentOverrideModelList.builder().componentOverrideModels(overrides).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@PostMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + "/revert" + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + "/revert" + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@PreAuthorize("hasAuthority('" + GET_RSS + "')")
|
@PreAuthorize("hasAuthority('" + GET_RSS + "')")
|
||||||
public RedirectView revertOverrides(String dossierTemplateId,
|
public void revertOverrides(@RequestParam(name = "dossierTemplateId") String dossierTemplateId,
|
||||||
@PathVariable(DOSSIER_ID) String dossierId,
|
@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
@PathVariable(FILE_ID) String fileId,
|
@PathVariable(FILE_ID) String fileId,
|
||||||
@RequestBody RevertOverrideRequest revertOverrideRequest) {
|
@RequestBody RevertOverrideRequest revertOverrideRequest) {
|
||||||
|
|
||||||
accessControlService.checkDossierExistenceAndAccessPermissionsToDossier(dossierId);
|
accessControlService.checkDossierExistenceAndAccessPermissionsToDossier(dossierId);
|
||||||
accessControlService.validateFileResourceExistence(fileId);
|
accessControlService.validateFileResourceExistence(fileId);
|
||||||
|
|
||||||
return new RedirectView(String.format("/api/dossier-templates/{%s}/dossiers/{%s}/files/{%s}/overrides/revert", dossierTemplateId, dossierId, fileId), true);
|
componentLogService.revertOverrides(dossierId, fileId, revertOverrideRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
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.persistence.service.v1.external.api.impl.controller.StatusController;
|
||||||
import com.iqser.red.persistence.service.v2.external.api.impl.mapper.ComponentMapper;
|
import com.iqser.red.persistence.service.v2.external.api.impl.mapper.ComponentMapper;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentLogService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentLogService;
|
||||||
|
|||||||
@ -9,10 +9,10 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||||
import org.springframework.web.servlet.view.RedirectView;
|
|
||||||
|
|
||||||
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.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.analysislog.componentlog.ComponentLogEntry;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentOverrideModelList;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@ -49,7 +49,10 @@ public interface ComponentLogResource {
|
|||||||
@PostMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "Adds overrides for components", description = "None")
|
@Operation(summary = "Adds overrides for components", description = "None")
|
||||||
@ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "404", description = "Not found"), @ApiResponse(responseCode = "403", description = "Forbidden")})
|
@ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "404", description = "Not found"), @ApiResponse(responseCode = "403", description = "Forbidden")})
|
||||||
RedirectView addOverride(String dossierTemplateId, @PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody ComponentLogEntry override);
|
void addOverride(@RequestParam(name = "dossierTemplateId") String dossierTemplateId,
|
||||||
|
@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
|
@PathVariable(FILE_ID) String fileId,
|
||||||
|
@RequestBody ComponentLogEntry override);
|
||||||
|
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@ -57,7 +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)
|
@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")
|
@Operation(summary = "Gets overrides for components", description = "None")
|
||||||
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "404", description = "Not found")})
|
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "404", description = "Not found")})
|
||||||
RedirectView getOverrides(String dossierTemplateId, @PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId);
|
ComponentOverrideModelList getOverrides(@RequestParam(name = "dossierTemplateId") String dossierTemplateId,
|
||||||
|
@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
|
@PathVariable(FILE_ID) String fileId);
|
||||||
|
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@ -65,6 +70,9 @@ public interface ComponentLogResource {
|
|||||||
@PostMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + "/revert" + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + "/revert" + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@Operation(summary = "Reverts overrides for components", description = "None")
|
@Operation(summary = "Reverts overrides for components", description = "None")
|
||||||
@ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "404", description = "Not found"), @ApiResponse(responseCode = "403", description = "Forbidden")})
|
@ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "404", description = "Not found"), @ApiResponse(responseCode = "403", description = "Forbidden")})
|
||||||
RedirectView revertOverrides(String dossierTemplateId, @PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody RevertOverrideRequest revertOverrideRequest);
|
void revertOverrides(@RequestParam(name = "dossierTemplateId") String dossierTemplateId,
|
||||||
|
@PathVariable(DOSSIER_ID) String dossierId,
|
||||||
|
@PathVariable(FILE_ID) String fileId,
|
||||||
|
@RequestBody RevertOverrideRequest revertOverrideRequest);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -54,6 +54,7 @@ public interface ComponentResource {
|
|||||||
String REVERT_PATH = "/revert";
|
String REVERT_PATH = "/revert";
|
||||||
|
|
||||||
String COMPONENT_OVERRIDE_PARAM = "componentOverride";
|
String COMPONENT_OVERRIDE_PARAM = "componentOverride";
|
||||||
|
String REVERT_OVERRIDE_PARAM = "revertOverride";
|
||||||
|
|
||||||
|
|
||||||
@GetMapping(value = FILE_PATH + FILE_ID_PATH_VARIABLE + COMPONENTS_PATH, produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
|
@GetMapping(value = FILE_PATH + FILE_ID_PATH_VARIABLE + COMPONENTS_PATH, produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
|
||||||
@ -102,6 +103,6 @@ public interface ComponentResource {
|
|||||||
void revertOverrides(@Parameter(name = DOSSIER_TEMPLATE_ID_PARAM, description = "The identifier of the dossier template that is used for the dossier.", required = true) @PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId,
|
void revertOverrides(@Parameter(name = DOSSIER_TEMPLATE_ID_PARAM, description = "The identifier of the dossier template that is used for the dossier.", required = true) @PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId,
|
||||||
@Parameter(name = DOSSIER_ID_PARAM, description = "The identifier of the dossier that contains the file.", required = true) @PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
@Parameter(name = DOSSIER_ID_PARAM, description = "The identifier of the dossier that contains the file.", required = true) @PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
||||||
@Parameter(name = FILE_ID_PARAM, description = "The identifier of the file that the components are requested for.", required = true) @PathVariable(FILE_ID_PARAM) String fileId,
|
@Parameter(name = FILE_ID_PARAM, description = "The identifier of the file that the components are requested for.", required = true) @PathVariable(FILE_ID_PARAM) String fileId,
|
||||||
@RequestBody RevertOverrideRequest revertOverrideRequest);
|
@Parameter(name = REVERT_OVERRIDE_PARAM) @RequestBody RevertOverrideRequest revertOverrideRequest);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,10 @@
|
|||||||
|
package com.iqser.red.service.peristence.v1.server.integration.client;
|
||||||
|
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.external.resource.ComponentLogResource;
|
||||||
|
|
||||||
|
@FeignClient(name = "ComponentLogResource", url = "http://localhost:28081")
|
||||||
|
public interface ComponentLogClient extends ComponentLogResource {
|
||||||
|
|
||||||
|
}
|
||||||
@ -6,6 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -13,10 +14,15 @@ import org.springframework.core.io.ClassPathResource;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.iqser.red.service.peristence.v1.server.integration.client.ComponentClient;
|
import com.iqser.red.service.peristence.v1.server.integration.client.ComponentClient;
|
||||||
|
import com.iqser.red.service.peristence.v1.server.integration.client.ComponentLogClient;
|
||||||
import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient;
|
import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient;
|
||||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
|
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.service.FileTesterAndProvider;
|
||||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
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.RevertOverrideRequest;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType;
|
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;
|
import com.iqser.red.service.persistence.service.v2.api.external.model.Component;
|
||||||
import com.iqser.red.service.persistence.service.v2.api.external.model.ComponentValue;
|
import com.iqser.red.service.persistence.service.v2.api.external.model.ComponentValue;
|
||||||
@ -36,12 +42,15 @@ public class ComponentOverrideTest extends AbstractPersistenceServerServiceTest
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ComponentClient componentClient;
|
private ComponentClient componentClient;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ComponentLogClient componentLogClient;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DossierTemplateClient dossierTemplateClient;
|
private DossierTemplateClient dossierTemplateClient;
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAddAndGetOverrides() throws IOException {
|
public void testOverrides() throws IOException {
|
||||||
|
|
||||||
var dossier = dossierTesterAndProvider.provideTestDossier();
|
var dossier = dossierTesterAndProvider.provideTestDossier();
|
||||||
|
|
||||||
@ -49,6 +58,10 @@ public class ComponentOverrideTest extends AbstractPersistenceServerServiceTest
|
|||||||
|
|
||||||
var file = fileTesterAndProvider.testAndProvideFile(dossier, "filename");
|
var file = fileTesterAndProvider.testAndProvideFile(dossier, "filename");
|
||||||
|
|
||||||
|
System.out.println("DOSSIER TEMPLATE ID: " + dossierTemplate.getId());
|
||||||
|
System.out.println("DOSSIER ID: " + dossier.getId());
|
||||||
|
System.out.println("FILE ID: " + file.getId());
|
||||||
|
|
||||||
Component componentOverrideModel = Component.builder()
|
Component componentOverrideModel = Component.builder()
|
||||||
.name("Study_Title")
|
.name("Study_Title")
|
||||||
.componentValues(List.of(ComponentValue.builder()
|
.componentValues(List.of(ComponentValue.builder()
|
||||||
@ -78,7 +91,8 @@ public class ComponentOverrideTest extends AbstractPersistenceServerServiceTest
|
|||||||
assertEquals(file.getId(), overrides.getFileId());
|
assertEquals(file.getId(), overrides.getFileId());
|
||||||
|
|
||||||
assertFalse(overrides.getComponentOverrideModels().isEmpty());
|
assertFalse(overrides.getComponentOverrideModels().isEmpty());
|
||||||
assertTrue(overrides.getComponentOverrideModels().get(0).isOverridden());
|
assertTrue(overrides.getComponentOverrideModels()
|
||||||
|
.get(0).isOverridden());
|
||||||
|
|
||||||
// override same entry a second time
|
// override same entry a second time
|
||||||
Component componentOverrideModel2 = Component.builder()
|
Component componentOverrideModel2 = Component.builder()
|
||||||
@ -98,7 +112,6 @@ public class ComponentOverrideTest extends AbstractPersistenceServerServiceTest
|
|||||||
.build();
|
.build();
|
||||||
componentClient.addOverride(dossierTemplate.getId(), dossier.getId(), file.getId(), componentOverrideModel2);
|
componentClient.addOverride(dossierTemplate.getId(), dossier.getId(), file.getId(), componentOverrideModel2);
|
||||||
|
|
||||||
// when(fileManagementStorageService.getComponentLog(any(), any())).thenReturn();
|
|
||||||
overrides = componentClient.getOverrides(dossierTemplate.getId(), dossier.getId(), file.getId());
|
overrides = componentClient.getOverrides(dossierTemplate.getId(), dossier.getId(), file.getId());
|
||||||
|
|
||||||
assertEquals(dossierTemplate.getId(), overrides.getDossierTemplateId());
|
assertEquals(dossierTemplate.getId(), overrides.getDossierTemplateId());
|
||||||
@ -106,7 +119,96 @@ public class ComponentOverrideTest extends AbstractPersistenceServerServiceTest
|
|||||||
assertEquals(file.getId(), overrides.getFileId());
|
assertEquals(file.getId(), overrides.getFileId());
|
||||||
|
|
||||||
assertFalse(overrides.getComponentOverrideModels().isEmpty());
|
assertFalse(overrides.getComponentOverrideModels().isEmpty());
|
||||||
assertTrue(overrides.getComponentOverrideModels().get(0).isOverridden());
|
assertTrue(overrides.getComponentOverrideModels()
|
||||||
|
.get(0).isOverridden());
|
||||||
|
|
||||||
|
// add and revert override
|
||||||
|
Component componentOverrideModel3 = Component.builder()
|
||||||
|
.name("Report_Number")
|
||||||
|
.componentValues(List.of(ComponentValue.builder()
|
||||||
|
.value("WOHOO 11/111-111A")
|
||||||
|
.originalValue("11/111-111A")
|
||||||
|
.valueDescription("First found value of type report_number or else ''")
|
||||||
|
.componentRuleId("ReportNumber.0.0")
|
||||||
|
.entityReferences(List.of(EntityReference.builder()
|
||||||
|
.id("e2a93bcc72e9740bbfc19bd9cd982e01")
|
||||||
|
.type("report_number")
|
||||||
|
.entityRuleId("DOC.2.0")
|
||||||
|
.page(1)
|
||||||
|
.build()))
|
||||||
|
.build()))
|
||||||
|
.build();
|
||||||
|
componentClient.addOverride(dossierTemplate.getId(), dossier.getId(), file.getId(), componentOverrideModel3);
|
||||||
|
|
||||||
|
overrides = componentClient.getOverrides(dossierTemplate.getId(), dossier.getId(), file.getId());
|
||||||
|
|
||||||
|
assertEquals(dossierTemplate.getId(), overrides.getDossierTemplateId());
|
||||||
|
assertEquals(dossier.getId(), overrides.getDossierId());
|
||||||
|
assertEquals(file.getId(), overrides.getFileId());
|
||||||
|
|
||||||
|
assertFalse(overrides.getComponentOverrideModels().isEmpty());
|
||||||
|
assertTrue(overrides.getComponentOverrideModels()
|
||||||
|
.stream()
|
||||||
|
.filter(component -> component.getName().equals("Report_Number"))
|
||||||
|
.findAny()
|
||||||
|
.get().isOverridden());
|
||||||
|
|
||||||
|
RevertOverrideRequest revertOverrideRequest = RevertOverrideRequest.builder().components(Set.of("Report_Number")).build();
|
||||||
|
componentClient.revertOverrides(dossierTemplate.getId(), dossier.getId(), file.getId(), revertOverrideRequest);
|
||||||
|
|
||||||
|
overrides = componentClient.getOverrides(dossierTemplate.getId(), dossier.getId(), file.getId());
|
||||||
|
|
||||||
|
assertEquals(dossierTemplate.getId(), overrides.getDossierTemplateId());
|
||||||
|
assertEquals(dossier.getId(), overrides.getDossierId());
|
||||||
|
assertEquals(file.getId(), overrides.getFileId());
|
||||||
|
|
||||||
|
assertFalse(overrides.getComponentOverrideModels().isEmpty());
|
||||||
|
assertFalse(overrides.getComponentOverrideModels()
|
||||||
|
.stream()
|
||||||
|
.anyMatch(component -> component.getName().equals("Report_Number")));
|
||||||
|
|
||||||
|
// testing old endpoints
|
||||||
|
var overridesFromOldEndpoint = componentLogClient.getComponentLog(dossier.getId(), file.getId(), true);
|
||||||
|
assertTrue(overridesFromOldEndpoint.getComponentLogEntries()
|
||||||
|
.stream()
|
||||||
|
.filter(component -> component.getName().equals("Study_Title"))
|
||||||
|
.findAny()
|
||||||
|
.get().isOverridden());
|
||||||
|
|
||||||
|
revertOverrideRequest = RevertOverrideRequest.builder().components(Set.of("Study_Title")).build();
|
||||||
|
componentLogClient.revertOverrides(dossierTemplate.getId(), dossier.getId(), file.getId(), revertOverrideRequest);
|
||||||
|
|
||||||
|
overridesFromOldEndpoint = componentLogClient.getComponentLog(dossier.getId(), file.getId(), true);
|
||||||
|
assertFalse(overridesFromOldEndpoint.getComponentLogEntries()
|
||||||
|
.stream()
|
||||||
|
.filter(component -> component.getName().equals("Study_Title"))
|
||||||
|
.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();
|
||||||
|
|
||||||
|
componentLogClient.addOverride(dossierTemplate.getId(), dossier.getId(), file.getId(), componentOverrideModel4);
|
||||||
|
|
||||||
|
overridesFromOldEndpoint = componentLogClient.getComponentLog(dossier.getId(), file.getId(), true);
|
||||||
|
assertTrue(overridesFromOldEndpoint.getComponentLogEntries()
|
||||||
|
.stream()
|
||||||
|
.filter(component -> component.getName().equals("Study_Title"))
|
||||||
|
.findAny()
|
||||||
|
.get().isOverridden());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,14 +12,10 @@ import java.util.Set;
|
|||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.CommentRepository;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ResizeRedactionRepository;
|
|
||||||
|
|
||||||
import org.assertj.core.util.Lists;
|
import org.assertj.core.util.Lists;
|
||||||
import org.bson.BsonArray;
|
import org.bson.BsonArray;
|
||||||
import org.bson.BsonDocument;
|
import org.bson.BsonDocument;
|
||||||
import org.bson.BsonString;
|
import org.bson.BsonString;
|
||||||
import org.checkerframework.checker.units.qual.A;
|
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
@ -54,7 +50,6 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|||||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
|
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
|
||||||
import org.springframework.security.web.SecurityFilterChain;
|
import org.springframework.security.web.SecurityFilterChain;
|
||||||
import org.springframework.test.annotation.DirtiesContext;
|
|
||||||
import org.springframework.test.context.ContextConfiguration;
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||||
import org.springframework.test.context.support.TestPropertySourceUtils;
|
import org.springframework.test.context.support.TestPropertySourceUtils;
|
||||||
@ -76,6 +71,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.EntityL
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ApplicationConfigRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ApplicationConfigRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.CommentRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DigitalSignatureRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DigitalSignatureRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeConfigRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeConfigRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeRepository;
|
||||||
@ -101,14 +97,18 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ManualRedactionRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ManualRedactionRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.RecategorizationRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.RecategorizationRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.RemoveRedactionRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.RemoveRedactionRepository;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ResizeRedactionRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.EntryRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.EntryRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalsePositiveEntryRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalsePositiveEntryRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalseRecommendationEntryRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalseRecommendationEntryRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService;
|
||||||
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.EntityLog;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.ApplicationConfig;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.ApplicationConfig;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.mongo.repository.ComponentDocumentRepository;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.mongo.repository.ComponentLogDocumentRepository;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.mongo.repository.EntityLogDocumentRepository;
|
import com.iqser.red.service.persistence.service.v1.api.shared.mongo.repository.EntityLogDocumentRepository;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.mongo.repository.EntityLogEntryDocumentRepository;
|
import com.iqser.red.service.persistence.service.v1.api.shared.mongo.repository.EntityLogEntryDocumentRepository;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.mongo.service.ComponentLogMongoService;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.mongo.service.EntityLogMongoService;
|
import com.iqser.red.service.persistence.service.v1.api.shared.mongo.service.EntityLogMongoService;
|
||||||
import com.iqser.red.service.redaction.v1.model.DroolsValidation;
|
import com.iqser.red.service.redaction.v1.model.DroolsValidation;
|
||||||
import com.iqser.red.storage.commons.service.StorageService;
|
import com.iqser.red.storage.commons.service.StorageService;
|
||||||
@ -168,6 +168,12 @@ public abstract class AbstractPersistenceServerServiceTest {
|
|||||||
@Autowired
|
@Autowired
|
||||||
protected EntityLogEntryDocumentRepository entityLogEntryDocumentRepository;
|
protected EntityLogEntryDocumentRepository entityLogEntryDocumentRepository;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
protected ComponentLogMongoService componentLogMongoService;
|
||||||
|
@Autowired
|
||||||
|
protected ComponentLogDocumentRepository componentLogDocumentRepository;
|
||||||
|
@Autowired
|
||||||
|
protected ComponentDocumentRepository componentDocumentRepository;
|
||||||
|
@Autowired
|
||||||
protected FileManagementStorageService fileManagementStorageService;
|
protected FileManagementStorageService fileManagementStorageService;
|
||||||
@Autowired
|
@Autowired
|
||||||
protected DossierTemplateRepository dossierTemplateRepository;
|
protected DossierTemplateRepository dossierTemplateRepository;
|
||||||
@ -526,6 +532,8 @@ public abstract class AbstractPersistenceServerServiceTest {
|
|||||||
applicationConfigRepository.deleteAll();
|
applicationConfigRepository.deleteAll();
|
||||||
entityLogEntryDocumentRepository.deleteAll();
|
entityLogEntryDocumentRepository.deleteAll();
|
||||||
entityLogDocumentRepository.deleteAll();
|
entityLogDocumentRepository.deleteAll();
|
||||||
|
componentLogDocumentRepository.deleteAll();
|
||||||
|
componentDocumentRepository.deleteAll();
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,11 +4,13 @@ import java.util.List;
|
|||||||
|
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.experimental.FieldDefaults;
|
import lombok.experimental.FieldDefaults;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
@Builder
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||||
|
|||||||
@ -0,0 +1,21 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.shared.model.component;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntry;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ComponentOverrideModelList {
|
||||||
|
|
||||||
|
List<ComponentLogEntry> componentOverrideModels = new ArrayList<>();
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user