RED-8480: integrated legal basis endpoint in recategorize endpoint
This commit is contained in:
parent
857f2383d2
commit
3fde378ade
@ -253,6 +253,7 @@ public class ManualRedactionController implements ManualRedactionResource {
|
||||
}
|
||||
|
||||
|
||||
@Deprecated(forRemoval = true)
|
||||
@PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')")
|
||||
public List<ManualAddResponse> legalBasisChangeBulk(@PathVariable(DOSSIER_ID) String dossierId,
|
||||
@PathVariable(FILE_ID) String fileId,
|
||||
|
||||
@ -120,6 +120,7 @@ public interface ManualRedactionResource {
|
||||
@RequestBody Set<ForceRedactionRequestModel> forceRedactionRequests);
|
||||
|
||||
|
||||
@Deprecated(forRemoval = true)
|
||||
@ResponseStatus(value = HttpStatus.OK)
|
||||
@PostMapping(value = MANUAL_REDACTION_REST_PATH
|
||||
+ "/bulk/redaction/legalBasisChange"
|
||||
|
||||
@ -49,6 +49,8 @@ public class ManualRecategorizationEntity implements IBaseAnnotation {
|
||||
private boolean addToAllDossiers;
|
||||
@Column(length = 4000)
|
||||
private String legalBasis;
|
||||
@Column(length = 1024)
|
||||
private String section;
|
||||
|
||||
@ManyToOne
|
||||
private FileEntity fileStatus;
|
||||
|
||||
@ -120,6 +120,7 @@ public class ManualRedactionMapper {
|
||||
}
|
||||
|
||||
|
||||
@Deprecated(forRemoval = true)
|
||||
public List<LegalBasisChangeRequest> toLegalBasisChangeRequestList(Set<LegalBasisChangeRequestModel> legalBasisChangeRequests) {
|
||||
|
||||
return legalBasisChangeRequests.stream()
|
||||
@ -159,6 +160,7 @@ public class ManualRedactionMapper {
|
||||
.dossierTemplateTypeId(toTypeId(recategorizationRequest.getType(), dossierTemplateId))
|
||||
.legalBasis(Optional.ofNullable(recategorizationRequest.getLegalBasis())
|
||||
.orElse(""))
|
||||
.section(recategorizationRequest.getSection())
|
||||
.build();
|
||||
requests.add(build);
|
||||
}
|
||||
|
||||
@ -197,6 +197,7 @@ public class ManualRedactionService {
|
||||
}
|
||||
|
||||
|
||||
@Deprecated(forRemoval = true)
|
||||
@Transactional
|
||||
public List<ManualAddResponse> addLegalBasisChange(String dossierId, String fileId, List<LegalBasisChangeRequest> legalBasisChangeRequests) {
|
||||
|
||||
@ -224,6 +225,8 @@ public class ManualRedactionService {
|
||||
public List<ManualAddResponse> addRecategorization(String dossierId, String fileId, List<RecategorizationRequest> recategorizationRequests) {
|
||||
|
||||
var response = new ArrayList<ManualAddResponse>();
|
||||
dossierPersistenceService.getAndValidateDossier(dossierId);
|
||||
|
||||
for (var recategorizationRequest : recategorizationRequests) {
|
||||
manualRedactionDictionaryUpdateHandler.validateDictionariesForAdd(recategorizationRequest, recategorizationRequest.getValue());
|
||||
manualRedactionDictionaryUpdateHandler.validateDictionariesForDelete(recategorizationRequest,
|
||||
|
||||
@ -5,12 +5,14 @@ import java.time.temporal.ChronoUnit;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRecategorizationEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.model.ManualChangesQueryOptions;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.RecategorizationRepository;
|
||||
@ -24,6 +26,8 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@RequiredArgsConstructor
|
||||
public class RecategorizationPersistenceService {
|
||||
|
||||
private final int SECTION_MAX_LENGTH = 1024;
|
||||
|
||||
private final RecategorizationRepository recategorizationRepository;
|
||||
|
||||
|
||||
@ -31,6 +35,7 @@ public class RecategorizationPersistenceService {
|
||||
|
||||
ManualRecategorizationEntity manualRecategorization = new ManualRecategorizationEntity();
|
||||
manualRecategorization.setId(new AnnotationEntityId(recategorizationRequest.getAnnotationId(), fileId));
|
||||
checkSection(recategorizationRequest.getSection());
|
||||
BeanUtils.copyProperties(recategorizationRequest, manualRecategorization);
|
||||
manualRecategorization.setRequestDate(OffsetDateTime.now());
|
||||
manualRecategorization.setTypeId(recategorizationRequest.getDossierTemplateTypeId());
|
||||
@ -39,6 +44,14 @@ public class RecategorizationPersistenceService {
|
||||
}
|
||||
|
||||
|
||||
private void checkSection(String section) {
|
||||
|
||||
if (!StringUtils.isEmpty(section) && section.length() > SECTION_MAX_LENGTH) {
|
||||
throw new BadRequestException(String.format("The section is too long (%s), max length %s", section.length(), SECTION_MAX_LENGTH));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Transactional
|
||||
public void updateModifiedDictionaries(String fileId, String annotationId, Set<String> typeIdsOfDictionaryWithAdd, Set<String> typeIdsOfDictionaryWithDelete) {
|
||||
|
||||
|
||||
@ -189,3 +189,5 @@ databaseChangeLog:
|
||||
file: db/changelog/tenant/121-set-dictionary-entry-type-for-dictionary-adds-where-null.yaml
|
||||
- include:
|
||||
file: db/changelog/tenant/sql/206-remove-manual-redactions-on-non-existing-pages.sql
|
||||
- include:
|
||||
file: db/changelog/tenant/122-add-legal-basis-variables-to-recategorize.yaml
|
||||
|
||||
@ -0,0 +1,11 @@
|
||||
databaseChangeLog:
|
||||
- changeSet:
|
||||
id: add-legal-basis-variables-to-recategorize
|
||||
author: ali
|
||||
changes:
|
||||
- addColumn:
|
||||
tableName: manual_recategorization
|
||||
columns:
|
||||
- column:
|
||||
name: section
|
||||
type: VARCHAR(1024)
|
||||
@ -415,7 +415,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest {
|
||||
.build()));
|
||||
manualRedactionClient.recategorizeBulk(dossierId,
|
||||
fileId,
|
||||
Set.of(RecategorizationRequestModel.builder().annotationId(annotationId).comment("comment").type("new-type").legalBasis("").build()),
|
||||
Set.of(RecategorizationRequestModel.builder().annotationId(annotationId).comment("comment").type("new-type").legalBasis("").section("section").build()),
|
||||
false);
|
||||
|
||||
var loadedFile = fileClient.getFileStatus(dossierId, fileId);
|
||||
|
||||
@ -1198,6 +1198,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
.addToDictionary(true)
|
||||
.addToAllDossiers(true)
|
||||
.legalBasis("")
|
||||
.section("section")
|
||||
.value("some value")
|
||||
.build()),
|
||||
false);
|
||||
|
||||
@ -1282,6 +1284,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
.addToDictionary(true)
|
||||
.addToAllDossiers(false)
|
||||
.legalBasis("")
|
||||
.section("section")
|
||||
.value("some value")
|
||||
.build()),
|
||||
false);
|
||||
|
||||
@ -1652,7 +1656,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
when(entityLogService.getEntityLog(Mockito.any(), Mockito.any(), any(), anyBoolean())).thenReturn(entityLog);
|
||||
|
||||
manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(RecategorizationRequestModel.builder().annotationId("dv").legalBasis("").build()), false);
|
||||
manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(RecategorizationRequestModel.builder().annotationId("dv").legalBasis("").section("section").value("").build()), false);
|
||||
|
||||
var allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false, true);
|
||||
assertEquals(allManualRedactions.getRecategorizations().size(), 1);
|
||||
@ -1676,7 +1680,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
.dossierId(dossier.getId())
|
||||
.build());
|
||||
|
||||
manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(RecategorizationRequestModel.builder().annotationId("dv2").legalBasis("").build()), false);
|
||||
manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(RecategorizationRequestModel.builder().annotationId("dv2").legalBasis("").section("section").value("value").build()), false);
|
||||
|
||||
allManualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId(), false, true);
|
||||
assertEquals(allManualRedactions.getRecategorizations().size(), 2);
|
||||
@ -1958,6 +1962,8 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
.addToDictionary(true)
|
||||
.addToAllDossiers(true)
|
||||
.legalBasis("")
|
||||
.section("section")
|
||||
.value("value")
|
||||
.build();
|
||||
var recatModelLongLegalBasis = RecategorizationRequestModel.builder()
|
||||
.type(type.getType())
|
||||
@ -1966,7 +1972,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest {
|
||||
.addToAllDossiers(true)
|
||||
.legalBasis(RandomStringUtils.randomAlphanumeric(4001))
|
||||
.build();
|
||||
var recatModelNoLegalBasis = RecategorizationRequestModel.builder().type(type.getType()).annotationId("annotationId3").addToDictionary(true).addToAllDossiers(true).build();
|
||||
var recatModelNoLegalBasis = RecategorizationRequestModel.builder().type(type.getType()).annotationId("annotationId3").addToDictionary(true).section("section").value("some value").addToAllDossiers(true).build();
|
||||
|
||||
manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), Set.of(recatModel, recatModelNoLegalBasis), false);
|
||||
|
||||
|
||||
@ -29,6 +29,7 @@ public class RecategorizationRequest implements ManualRequestWithAddToDictionary
|
||||
boolean addToAllDossiers;
|
||||
private DictionaryEntryType dictionaryEntryType;
|
||||
String legalBasis;
|
||||
String section;
|
||||
|
||||
|
||||
@Override
|
||||
|
||||
@ -17,6 +17,8 @@ public class ManualRecategorization extends BaseAnnotation {
|
||||
private String legalBasis;
|
||||
private boolean addToDictionary;
|
||||
private boolean addToAllDossiers;
|
||||
private String section;
|
||||
private String value;
|
||||
|
||||
|
||||
@Override
|
||||
|
||||
@ -20,5 +20,7 @@ public class RecategorizationRequestModel {
|
||||
boolean addToDictionary;
|
||||
boolean addToAllDossiers;
|
||||
String legalBasis;
|
||||
String section;
|
||||
String value;
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user