RED-10196: Backend adaptions for RM/DM unification
This commit is contained in:
parent
b8710d57b3
commit
4d36a3d813
@ -7,7 +7,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val redactionServiceVersion by rootProject.extra { "4.290.0" }
|
val redactionServiceVersion by rootProject.extra { "4.290.0" }
|
||||||
val pdftronRedactionServiceVersion by rootProject.extra { "4.87.0" }
|
val pdftronRedactionServiceVersion by rootProject.extra { "4.89.0-RED10196.0" }
|
||||||
val redactionReportServiceVersion by rootProject.extra { "4.81.0" }
|
val redactionReportServiceVersion by rootProject.extra { "4.81.0" }
|
||||||
val searchServiceVersion by rootProject.extra { "2.90.0" }
|
val searchServiceVersion by rootProject.extra { "2.90.0" }
|
||||||
|
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import com.iqser.red.persistence.service.v2.external.api.impl.mapper.ComponentMa
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotAllowedException;
|
import com.iqser.red.service.persistence.management.v1.processor.exception.NotAllowedException;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles;
|
import com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles;
|
||||||
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.management.v1.processor.service.CurrentApplicationTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService;
|
||||||
@ -34,6 +35,7 @@ import com.iqser.red.service.persistence.service.v2.api.external.model.FileCompo
|
|||||||
import com.iqser.red.service.persistence.service.v2.api.external.model.FileComponentsList;
|
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 com.iqser.red.service.persistence.service.v2.api.external.resource.ComponentResource;
|
||||||
import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity;
|
import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity;
|
||||||
|
import com.knecon.fforesight.tenantcommons.TenantProvider;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
@ -50,11 +52,9 @@ public class ComponentControllerV2 implements ComponentResource {
|
|||||||
private final StatusController statusController;
|
private final StatusController statusController;
|
||||||
private final FileStatusService fileStatusService;
|
private final FileStatusService fileStatusService;
|
||||||
private final DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
private final DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
||||||
|
private final CurrentApplicationTypeProvider currentApplicationTypeProvider;
|
||||||
private final ComponentMapper componentMapper = ComponentMapper.INSTANCE;
|
private final ComponentMapper componentMapper = ComponentMapper.INSTANCE;
|
||||||
|
|
||||||
@Value("${application.type}")
|
|
||||||
private String applicationType;
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FileComponents getComponents(@PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId,
|
public FileComponents getComponents(@PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId,
|
||||||
@ -154,7 +154,7 @@ public class ComponentControllerV2 implements ComponentResource {
|
|||||||
|
|
||||||
private void checkApplicationType() {
|
private void checkApplicationType() {
|
||||||
|
|
||||||
if(!applicationType.equals("DocuMine")) {
|
if (!currentApplicationTypeProvider.isDocuMine()) {
|
||||||
throw new NotAllowedException("Components can only be accessed in DocuMine");
|
throw new NotAllowedException("Components can only be accessed in DocuMine");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import com.iqser.red.persistence.service.v1.external.api.impl.controller.Downloa
|
|||||||
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.service.persistence.management.v1.processor.entity.dossier.FileEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
|
||||||
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.CurrentApplicationTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.DossierAttributesManagementService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.DossierAttributesManagementService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService;
|
||||||
@ -42,24 +43,25 @@ import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity;
|
|||||||
|
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.AccessLevel;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.experimental.FieldDefaults;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Tag(name = "2. Dossier endpoints", description = "Provides operations related to dossiers")
|
@Tag(name = "2. Dossier endpoints", description = "Provides operations related to dossiers")
|
||||||
|
@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
|
||||||
public class DossierControllerV2 implements DossierResource {
|
public class DossierControllerV2 implements DossierResource {
|
||||||
|
|
||||||
private final DossierTemplateController dossierTemplateController;
|
DossierTemplateController dossierTemplateController;
|
||||||
private final DossierController dossierController;
|
DossierController dossierController;
|
||||||
private final AccessControlService accessControlService;
|
AccessControlService accessControlService;
|
||||||
private final DossierAttributesManagementService dossierAttributesManagementService;
|
DossierAttributesManagementService dossierAttributesManagementService;
|
||||||
private final AuditPersistenceService auditPersistenceService;
|
AuditPersistenceService auditPersistenceService;
|
||||||
private final DownloadController downloadController;
|
DownloadController downloadController;
|
||||||
private final StatusController statusController;
|
StatusController statusController;
|
||||||
private final DownloadStatusPersistenceService downloadStatusPersistenceService;
|
DownloadStatusPersistenceService downloadStatusPersistenceService;
|
||||||
|
CurrentApplicationTypeProvider currentApplicationTypeProvider;
|
||||||
@Value("${application.type}")
|
|
||||||
private String applicationType;
|
|
||||||
|
|
||||||
|
|
||||||
public DossierList getDossiers(@PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId,
|
public DossierList getDossiers(@PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId,
|
||||||
@ -191,7 +193,7 @@ public class DossierControllerV2 implements DossierResource {
|
|||||||
.description(dossier.getDescription())
|
.description(dossier.getDescription())
|
||||||
.ownerId(dossier.getOwnerId())
|
.ownerId(dossier.getOwnerId())
|
||||||
.memberIds(dossier.getMemberIds())
|
.memberIds(dossier.getMemberIds())
|
||||||
.approverIds(applicationType.equals("DocuMine") ? dossier.getMemberIds() : dossier.getApproverIds()) // for DocuMine, the members are always set as approvers
|
.approverIds(currentApplicationTypeProvider.isDocuMine() ? dossier.getMemberIds() : dossier.getApproverIds()) // for DocuMine, the members are always set as approvers
|
||||||
.downloadFileTypes(Set.of(DownloadFileType.ORIGINAL))
|
.downloadFileTypes(Set.of(DownloadFileType.ORIGINAL))
|
||||||
.reportTemplateIds(dossier.getReportTemplateIds())
|
.reportTemplateIds(dossier.getReportTemplateIds())
|
||||||
.watermarkId(null)
|
.watermarkId(null)
|
||||||
|
|||||||
@ -30,10 +30,6 @@ dependencies {
|
|||||||
exclude(group = "com.iqser.red.service", module = "persistence-service-internal-api-v1")
|
exclude(group = "com.iqser.red.service", module = "persistence-service-internal-api-v1")
|
||||||
exclude(group = "com.iqser.red.service", module = "persistence-service-shared-api-v1")
|
exclude(group = "com.iqser.red.service", module = "persistence-service-shared-api-v1")
|
||||||
}
|
}
|
||||||
api("com.knecon.fforesight:layoutparser-service-internal-api:0.181.0") {
|
|
||||||
exclude(group = "com.iqser.red.service", module = "persistence-service-internal-api-v1")
|
|
||||||
exclude(group = "com.iqser.red.service", module = "persistence-service-shared-api-v1")
|
|
||||||
}
|
|
||||||
api("com.iqser.red.service:search-service-api-v1:${rootProject.extra.get("searchServiceVersion")}") {
|
api("com.iqser.red.service:search-service-api-v1:${rootProject.extra.get("searchServiceVersion")}") {
|
||||||
exclude(group = "com.iqser.red.service", module = "persistence-service-internal-api-v1")
|
exclude(group = "com.iqser.red.service", module = "persistence-service-internal-api-v1")
|
||||||
exclude(group = "com.iqser.red.service", module = "persistence-service-shared-api-v1")
|
exclude(group = "com.iqser.red.service", module = "persistence-service-shared-api-v1")
|
||||||
@ -42,10 +38,10 @@ dependencies {
|
|||||||
implementation("com.knecon.fforesight:llm-service-api:1.20.0-RED10072.2")
|
implementation("com.knecon.fforesight:llm-service-api:1.20.0-RED10072.2")
|
||||||
api("com.knecon.fforesight:jobs-commons:0.10.0")
|
api("com.knecon.fforesight:jobs-commons:0.10.0")
|
||||||
api("com.iqser.red.commons:storage-commons:2.50.0")
|
api("com.iqser.red.commons:storage-commons:2.50.0")
|
||||||
api("com.knecon.fforesight:tenant-commons:0.31.0") {
|
api("com.knecon.fforesight:tenant-commons:0.31.0-RED10196.0") {
|
||||||
exclude(group = "com.iqser.red.commons", module = "storage-commons")
|
exclude(group = "com.iqser.red.commons", module = "storage-commons")
|
||||||
}
|
}
|
||||||
api("com.knecon.fforesight:database-tenant-commons:0.28.0") {
|
api("com.knecon.fforesight:database-tenant-commons:0.28.0-RED10196.0") {
|
||||||
exclude(group = "com.knecon.fforesight", module = "tenant-commons")
|
exclude(group = "com.knecon.fforesight", module = "tenant-commons")
|
||||||
}
|
}
|
||||||
api("com.knecon.fforesight:keycloak-commons:0.30.0") {
|
api("com.knecon.fforesight:keycloak-commons:0.30.0") {
|
||||||
|
|||||||
@ -19,10 +19,14 @@ import java.util.stream.Collectors;
|
|||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ComponentMappingImportModel;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.EntityTypeImportModel;
|
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.EntityTypeImportModel;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ImportTemplateResult;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.TemplateImportInfo;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.zipreaders.DossierTemplateArchiveReader;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.zipreaders.ZipEntryIterator;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity;
|
||||||
@ -33,14 +37,11 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
|
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ComponentMappingImportModel;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ImportTemplateResult;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.TemplateImportInfo;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.zipreaders.DossierTemplateArchiveReader;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.zipreaders.ZipEntryIterator;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentMappingService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentMappingService;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.CurrentApplicationTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.DateFormatsValidationService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.DateFormatsValidationService;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.LayoutParsingTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.DefaultDateFormatsProvider;
|
import com.iqser.red.service.persistence.management.v1.processor.service.DefaultDateFormatsProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.ReportTemplateService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.ReportTemplateService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService;
|
||||||
@ -72,43 +73,44 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp
|
|||||||
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;
|
||||||
import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter;
|
import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter;
|
||||||
import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingType;
|
|
||||||
import com.knecon.fforesight.tenantcommons.TenantContext;
|
import com.knecon.fforesight.tenantcommons.TenantContext;
|
||||||
|
|
||||||
import io.micrometer.observation.annotation.Observed;
|
import io.micrometer.observation.annotation.Observed;
|
||||||
|
import lombok.AccessLevel;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
|
import lombok.experimental.FieldDefaults;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
|
@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
|
||||||
public class DossierTemplateImportService {
|
public class DossierTemplateImportService {
|
||||||
|
|
||||||
@Value("${application.type}")
|
DossierTemplateRepository dossierTemplateRepository;
|
||||||
private String applicationType;
|
LegalBasisMappingPersistenceService legalBasisMappingPersistenceService;
|
||||||
|
RulesPersistenceService rulesPersistenceService;
|
||||||
private final DossierTemplateRepository dossierTemplateRepository;
|
DateFormatsPersistenceService dateFormatsPersistenceService;
|
||||||
private final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService;
|
DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
||||||
private final RulesPersistenceService rulesPersistenceService;
|
DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService;
|
||||||
private final DateFormatsPersistenceService dateFormatsPersistenceService;
|
FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService;
|
||||||
private final DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
ColorsService colorsService;
|
||||||
private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService;
|
DossierStatusPersistenceService dossierStatusPersistenceService;
|
||||||
private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService;
|
WatermarkService watermarkService;
|
||||||
private final ColorsService colorsService;
|
ReportTemplateService reportTemplateService;
|
||||||
private final DossierStatusPersistenceService dossierStatusPersistenceService;
|
ReportTemplatePersistenceService reportTemplatePersistenceService;
|
||||||
private final WatermarkService watermarkService;
|
RulesValidationService rulesValidationService;
|
||||||
private final ReportTemplateService reportTemplateService;
|
DateFormatsValidationService dateFormatsValidationService;
|
||||||
private final ReportTemplatePersistenceService reportTemplatePersistenceService;
|
StorageService storageService;
|
||||||
private final RulesValidationService rulesValidationService;
|
FileManagementServiceSettings settings;
|
||||||
private final DateFormatsValidationService dateFormatsValidationService;
|
ComponentMappingService componentMappingService;
|
||||||
private final StorageService storageService;
|
ComponentDefinitionPersistenceService componentDefinitionPersistenceService;
|
||||||
private final FileManagementServiceSettings settings;
|
EntityTypeImportService entityTypeImportService;
|
||||||
private final ComponentMappingService componentMappingService;
|
SystemManagedTypesImport systemManagedTypesImport;
|
||||||
private final ComponentDefinitionPersistenceService componentDefinitionPersistenceService;
|
LayoutParsingTypeProvider layoutParsingTypeProvider;
|
||||||
private final EntityTypeImportService entityTypeImportService;
|
CurrentApplicationTypeProvider currentApplicationTypeProvider;
|
||||||
private final SystemManagedTypesImport systemManagedTypesImport;
|
DefaultDateFormatsProvider defaultDateFormatsProvider;
|
||||||
private final DefaultDateFormatsProvider defaultDateFormatsProvider;
|
|
||||||
|
|
||||||
|
|
||||||
public String importDossierTemplate(ImportDossierTemplateRequest request) {
|
public String importDossierTemplate(ImportDossierTemplateRequest request) {
|
||||||
@ -147,6 +149,10 @@ public class DossierTemplateImportService {
|
|||||||
int importStep = 1;
|
int importStep = 1;
|
||||||
var dossierTemplateMeta = request.getDossierTemplate();
|
var dossierTemplateMeta = request.getDossierTemplate();
|
||||||
|
|
||||||
|
if (dossierTemplateMeta.getLayoutParsingType() == null) {
|
||||||
|
dossierTemplateMeta.setLayoutParsingType(layoutParsingTypeProvider.deferFromCurrentApplicationType());
|
||||||
|
}
|
||||||
|
|
||||||
TemplateImportInfo templateImportInfo = TemplateImportInfo.builder().build();
|
TemplateImportInfo templateImportInfo = TemplateImportInfo.builder().build();
|
||||||
|
|
||||||
DossierTemplateEntity existingDossierTemplate = null;
|
DossierTemplateEntity existingDossierTemplate = null;
|
||||||
@ -302,7 +308,6 @@ public class DossierTemplateImportService {
|
|||||||
dossierTemplateEntity.setId(UUID.randomUUID().toString());
|
dossierTemplateEntity.setId(UUID.randomUUID().toString());
|
||||||
dossierTemplateEntity.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
dossierTemplateEntity.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||||
dossierTemplateEntity.setCreatedBy(request.getUserId());
|
dossierTemplateEntity.setCreatedBy(request.getUserId());
|
||||||
dossierTemplateEntity.setLayoutParsingType(deferFromApplicationType());
|
|
||||||
|
|
||||||
var loadedDossierTemplate = dossierTemplateRepository.save(dossierTemplateEntity);
|
var loadedDossierTemplate = dossierTemplateRepository.save(dossierTemplateEntity);
|
||||||
loadedDossierTemplate.setDossierTemplateStatus(dossierTemplatePersistenceService.computeDossierTemplateStatus(loadedDossierTemplate));
|
loadedDossierTemplate.setDossierTemplateStatus(dossierTemplatePersistenceService.computeDossierTemplateStatus(loadedDossierTemplate));
|
||||||
@ -496,7 +501,7 @@ public class DossierTemplateImportService {
|
|||||||
private void setDataFormats(ImportTemplateResult request, String dossierTemplateId) {
|
private void setDataFormats(ImportTemplateResult request, String dossierTemplateId) {
|
||||||
|
|
||||||
String dateFormats = request.getDateFormats();
|
String dateFormats = request.getDateFormats();
|
||||||
if (dateFormats == null && applicationType.equals("DocuMine")) {
|
if (dateFormats == null && currentApplicationTypeProvider.isDocuMine()) {
|
||||||
dateFormats = defaultDateFormatsProvider.getDateFormats();
|
dateFormats = defaultDateFormatsProvider.getDateFormats();
|
||||||
}
|
}
|
||||||
if (dateFormats != null) {
|
if (dateFormats != null) {
|
||||||
@ -523,7 +528,7 @@ public class DossierTemplateImportService {
|
|||||||
dossierTemplateEntity.setModifiedBy(userId);
|
dossierTemplateEntity.setModifiedBy(userId);
|
||||||
dossierTemplateEntity.setValidFrom(dossierTemplate.getValidFrom() == null ? dossierTemplateEntity.getValidFrom() : dossierTemplate.getValidFrom());
|
dossierTemplateEntity.setValidFrom(dossierTemplate.getValidFrom() == null ? dossierTemplateEntity.getValidFrom() : dossierTemplate.getValidFrom());
|
||||||
dossierTemplateEntity.setValidTo(dossierTemplate.getValidTo() == null ? dossierTemplateEntity.getValidTo() : dossierTemplate.getValidTo());
|
dossierTemplateEntity.setValidTo(dossierTemplate.getValidTo() == null ? dossierTemplateEntity.getValidTo() : dossierTemplate.getValidTo());
|
||||||
dossierTemplateEntity.setLayoutParsingType(deferFromApplicationType());
|
dossierTemplateEntity.setLayoutParsingType(layoutParsingTypeProvider.deferFromCurrentApplicationType());
|
||||||
|
|
||||||
dossierTemplateEntity.setDownloadFileTypes(dossierTemplate.getDownloadFileTypes() == null || dossierTemplate.getDownloadFileTypes()
|
dossierTemplateEntity.setDownloadFileTypes(dossierTemplate.getDownloadFileTypes() == null || dossierTemplate.getDownloadFileTypes()
|
||||||
.isEmpty() ? dossierTemplateEntity.getDownloadFileTypes() : dossierTemplate.getDownloadFileTypes());
|
.isEmpty() ? dossierTemplateEntity.getDownloadFileTypes() : dossierTemplate.getDownloadFileTypes());
|
||||||
@ -531,12 +536,6 @@ public class DossierTemplateImportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private LayoutParsingType deferFromApplicationType() {
|
|
||||||
|
|
||||||
return Objects.equals(applicationType, "DocuMine") ? LayoutParsingType.DOCUMINE_OLD : LayoutParsingType.REDACT_MANAGER_WITHOUT_DUPLICATE_PARAGRAPH;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void setColors(String dossierTemplateId, Colors requestedColors) {
|
private void setColors(String dossierTemplateId, Colors requestedColors) {
|
||||||
// set colors
|
// set colors
|
||||||
if (requestedColors != null) {
|
if (requestedColors != null) {
|
||||||
|
|||||||
@ -2,7 +2,6 @@ package com.iqser.red.service.persistence.management.v1.processor.migration;
|
|||||||
|
|
||||||
import static com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration.MIGRATION_REQUEST_QUEUE;
|
import static com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration.MIGRATION_REQUEST_QUEUE;
|
||||||
|
|
||||||
import java.time.OffsetDateTime;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -27,7 +26,6 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.settings.FileManagementServiceSettings;
|
import com.iqser.red.service.persistence.management.v1.processor.settings.FileManagementServiceSettings;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils;
|
import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.migration.MigratedIds;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.migration.MigratedIds;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualForceRedaction;
|
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry;
|
||||||
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.v1.api.shared.model.dossiertemplate.dossier.file.SaasMigrationStatus;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.SaasMigrationStatus;
|
||||||
@ -123,7 +121,7 @@ public class SaasMigrationService implements TenantSyncService {
|
|||||||
// delete NER_ENTITIES since offsets depend on old document structure.
|
// delete NER_ENTITIES since offsets depend on old document structure.
|
||||||
storageService.deleteObject(TenantContext.getTenantId(), StorageIdUtils.getStorageId(file.getDossierId(), file.getFileId(), FileType.NER_ENTITIES));
|
storageService.deleteObject(TenantContext.getTenantId(), StorageIdUtils.getStorageId(file.getDossierId(), file.getFileId(), FileType.NER_ENTITIES));
|
||||||
|
|
||||||
var layoutParsingRequest = layoutParsingRequestFactory.build(file.getDossierId(), file.getFileId(), false);
|
var layoutParsingRequest = layoutParsingRequestFactory.build(dossier.getDossierTemplate().getId(), file.getDossierId(), file.getFileId(), false);
|
||||||
|
|
||||||
rabbitTemplate.convertAndSend(LayoutParsingQueueNames.LAYOUT_PARSING_REQUEST_EXCHANGE, TenantContext.getTenantId(), layoutParsingRequest);
|
rabbitTemplate.convertAndSend(LayoutParsingQueueNames.LAYOUT_PARSING_REQUEST_EXCHANGE, TenantContext.getTenantId(), layoutParsingRequest);
|
||||||
|
|
||||||
@ -159,7 +157,7 @@ public class SaasMigrationService implements TenantSyncService {
|
|||||||
|
|
||||||
log.info("Starting Migration for dossierId {} and fileId {}", dossierId, fileId);
|
log.info("Starting Migration for dossierId {} and fileId {}", dossierId, fileId);
|
||||||
saasMigrationStatusPersistenceService.createMigrationRequiredStatus(dossierId, fileId);
|
saasMigrationStatusPersistenceService.createMigrationRequiredStatus(dossierId, fileId);
|
||||||
var layoutParsingRequest = layoutParsingRequestFactory.build(dossierId, fileId, false);
|
var layoutParsingRequest = layoutParsingRequestFactory.build(dossier.getDossierTemplate().getId(), dossierId, fileId, false);
|
||||||
rabbitTemplate.convertAndSend(LayoutParsingQueueNames.LAYOUT_PARSING_REQUEST_EXCHANGE, TenantContext.getTenantId(), layoutParsingRequest);
|
rabbitTemplate.convertAndSend(LayoutParsingQueueNames.LAYOUT_PARSING_REQUEST_EXCHANGE, TenantContext.getTenantId(), layoutParsingRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,20 +1,14 @@
|
|||||||
package com.iqser.red.service.persistence.management.v1.processor.migration.migrations;
|
package com.iqser.red.service.persistence.management.v1.processor.migration.migrations;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.core.io.ClassPathResource;
|
|
||||||
import org.springframework.core.io.Resource;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.migration.Migration;
|
import com.iqser.red.service.persistence.management.v1.processor.migration.Migration;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.DefaultDateFormatsProvider;
|
import com.iqser.red.service.persistence.management.v1.processor.service.DefaultDateFormatsProvider;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.CurrentApplicationTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DateFormatsPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DateFormatsPersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
|
||||||
|
|
||||||
@ -31,14 +25,13 @@ public class AddDateFormatsToTemplatesMigration25 extends Migration {
|
|||||||
private static final long VERSION = 25;
|
private static final long VERSION = 25;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
DateFormatsPersistenceService dateFormatsPersistenceService;
|
private DateFormatsPersistenceService dateFormatsPersistenceService;
|
||||||
@Autowired
|
@Autowired
|
||||||
DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
private DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
||||||
@Autowired
|
@Autowired
|
||||||
DefaultDateFormatsProvider defaultDateFormatsProvider;
|
private DefaultDateFormatsProvider defaultDateFormatsProvider;
|
||||||
|
@Autowired
|
||||||
@Value("${application.type}")
|
private CurrentApplicationTypeProvider currentApplicationTypeProvider;
|
||||||
private String applicationType;
|
|
||||||
|
|
||||||
|
|
||||||
public AddDateFormatsToTemplatesMigration25() {
|
public AddDateFormatsToTemplatesMigration25() {
|
||||||
@ -51,7 +44,7 @@ public class AddDateFormatsToTemplatesMigration25 extends Migration {
|
|||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
protected void migrate() {
|
protected void migrate() {
|
||||||
|
|
||||||
if (!applicationType.equalsIgnoreCase("DocuMine")) {
|
if (!currentApplicationTypeProvider.isDocuMine()) {
|
||||||
log.info("Skipping AddDateFormatsToTemplatesMigration25 as application type is not DocuMine!!!");
|
log.info("Skipping AddDateFormatsToTemplatesMigration25 as application type is not DocuMine!!!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,18 +3,16 @@ package com.iqser.red.service.persistence.management.v1.processor.migration.migr
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.iqser.red.service.pdftron.redaction.v1.api.model.ApplicationType;
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.migration.Migration;
|
import com.iqser.red.service.persistence.management.v1.processor.migration.Migration;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.migration.StorageToMongoCopyService;
|
import com.iqser.red.service.persistence.management.v1.processor.migration.StorageToMongoCopyService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentDefinitionService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentDefinitionService;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.CurrentApplicationTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentDefinitionAddRequest;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentDefinitionAddRequest;
|
||||||
|
|
||||||
import lombok.experimental.NonFinal;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -116,16 +114,14 @@ public class ComponentOverridesMigration21 extends Migration {
|
|||||||
"Certificate of analysis batch identification",
|
"Certificate of analysis batch identification",
|
||||||
"Certificate of analysis batch identification"));
|
"Certificate of analysis batch identification"));
|
||||||
|
|
||||||
@NonFinal
|
|
||||||
@Value("${application.type}")
|
|
||||||
String applicationType;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
ComponentDefinitionService componentDefinitionService;
|
ComponentDefinitionService componentDefinitionService;
|
||||||
@Autowired
|
@Autowired
|
||||||
DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
||||||
@Autowired
|
@Autowired
|
||||||
StorageToMongoCopyService storageToMongoCopyService;
|
StorageToMongoCopyService storageToMongoCopyService;
|
||||||
|
@Autowired
|
||||||
|
private CurrentApplicationTypeProvider currentApplicationTypeProvider;
|
||||||
|
|
||||||
|
|
||||||
public ComponentOverridesMigration21() {
|
public ComponentOverridesMigration21() {
|
||||||
@ -137,7 +133,7 @@ public class ComponentOverridesMigration21 extends Migration {
|
|||||||
@Override
|
@Override
|
||||||
protected void migrate() {
|
protected void migrate() {
|
||||||
|
|
||||||
if (!applicationType.equals("DocuMine")) {
|
if (!currentApplicationTypeProvider.isDocuMine()) {
|
||||||
log.info("Skipping component migration, due to application type not being equal to DOCUMINE!");
|
log.info("Skipping component migration, due to application type not being equal to DOCUMINE!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import org.springframework.beans.factory.annotation.Value;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.migration.Migration;
|
import com.iqser.red.service.persistence.management.v1.processor.migration.Migration;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.CurrentApplicationTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService;
|
||||||
@ -16,7 +17,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Setter
|
@Setter
|
||||||
@Service
|
@Service
|
||||||
public class DocumineLayoutRewriteMigration20 extends Migration {
|
public class DocumineLayoutRewriteMigration20 extends Migration {
|
||||||
|
|
||||||
private static final String NAME = "Reanalyse layout for not approved Documine files";
|
private static final String NAME = "Reanalyse layout for not approved Documine files";
|
||||||
private static final long VERSION = 20;
|
private static final long VERSION = 20;
|
||||||
@ -30,10 +31,8 @@ public class DocumineLayoutRewriteMigration20 extends Migration {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private FileStatusPersistenceService fileStatusPersistenceService;
|
private FileStatusPersistenceService fileStatusPersistenceService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
@Value("${application.type}")
|
private CurrentApplicationTypeProvider currentApplicationTypeProvider;
|
||||||
private String applicationType;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public DocumineLayoutRewriteMigration20() {
|
public DocumineLayoutRewriteMigration20() {
|
||||||
@ -45,7 +44,7 @@ public class DocumineLayoutRewriteMigration20 extends Migration {
|
|||||||
@Override
|
@Override
|
||||||
protected void migrate() {
|
protected void migrate() {
|
||||||
|
|
||||||
if(!applicationType.equalsIgnoreCase("DocuMine")){
|
if (!currentApplicationTypeProvider.isDocuMine()) {
|
||||||
log.info("Skipping DocumineLayoutRewriteMigration20 as application type is not DocuMine!!!");
|
log.info("Skipping DocumineLayoutRewriteMigration20 as application type is not DocuMine!!!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,44 @@
|
|||||||
|
package com.iqser.red.service.persistence.management.v1.processor.service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import com.knecon.fforesight.tenantcommons.TenantApplicationType;
|
||||||
|
import com.knecon.fforesight.tenantcommons.TenantContext;
|
||||||
|
import com.knecon.fforesight.tenantcommons.TenantProvider;
|
||||||
|
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.experimental.FieldDefaults;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
|
||||||
|
public class CurrentApplicationTypeProvider {
|
||||||
|
|
||||||
|
TenantProvider tenantProvider;
|
||||||
|
|
||||||
|
Map<String, TenantApplicationType> cache = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
public TenantApplicationType get() {
|
||||||
|
|
||||||
|
return cache.computeIfAbsent(TenantContext.getTenantId(), tenantProvider::getTenantApplicationType);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean isDocuMine() {
|
||||||
|
|
||||||
|
return get().equals(TenantApplicationType.DocuMine);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean isRedactManager() {
|
||||||
|
|
||||||
|
return get().equals(TenantApplicationType.RedactManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@ -14,11 +14,9 @@ import java.util.stream.Collectors;
|
|||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import com.iqser.red.service.pdftron.redaction.v1.api.model.ApplicationType;
|
|
||||||
import com.iqser.red.service.pdftron.redaction.v1.api.model.ProcessUntouchedDocumentRequest;
|
import com.iqser.red.service.pdftron.redaction.v1.api.model.ProcessUntouchedDocumentRequest;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration;
|
import com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity;
|
||||||
@ -89,7 +87,6 @@ import lombok.AccessLevel;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.experimental.FieldDefaults;
|
import lombok.experimental.FieldDefaults;
|
||||||
import lombok.experimental.NonFinal;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -98,10 +95,6 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
|
@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
|
||||||
public class FileStatusService {
|
public class FileStatusService {
|
||||||
|
|
||||||
@NonFinal
|
|
||||||
@Value("${application.type}")
|
|
||||||
String applicationType;
|
|
||||||
|
|
||||||
FileStatusPersistenceService fileStatusPersistenceService;
|
FileStatusPersistenceService fileStatusPersistenceService;
|
||||||
DossierPersistenceService dossierPersistenceService;
|
DossierPersistenceService dossierPersistenceService;
|
||||||
DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
||||||
@ -125,6 +118,7 @@ public class FileStatusService {
|
|||||||
ComponentDefinitionPersistenceService componentDefinitionPersistenceService;
|
ComponentDefinitionPersistenceService componentDefinitionPersistenceService;
|
||||||
EntityLogMongoService entityLogMongoService;
|
EntityLogMongoService entityLogMongoService;
|
||||||
ComponentLogMongoService componentLogMongoService;
|
ComponentLogMongoService componentLogMongoService;
|
||||||
|
CurrentApplicationTypeProvider currentApplicationTypeProvider;
|
||||||
DictionaryPersistenceService dictionaryPersistenceService;
|
DictionaryPersistenceService dictionaryPersistenceService;
|
||||||
|
|
||||||
WebsocketService websocketService;
|
WebsocketService websocketService;
|
||||||
@ -332,7 +326,7 @@ public class FileStatusService {
|
|||||||
FileType.DOCUMENT_TEXT.name(),
|
FileType.DOCUMENT_TEXT.name(),
|
||||||
FileType.DOCUMENT_TEXT_OLD.getExtension())) {
|
FileType.DOCUMENT_TEXT_OLD.getExtension())) {
|
||||||
|
|
||||||
var layoutParsingRequest = layoutParsingRequestFactory.build(dossierId, fileId, priority);
|
var layoutParsingRequest = layoutParsingRequestFactory.build(dossierTemplate.getId(), dossierId, fileId, priority);
|
||||||
setStatusFullProcessing(fileId);
|
setStatusFullProcessing(fileId);
|
||||||
log.info("Add file: {} from dossier {} to layout parsing request queue", fileId, dossierId);
|
log.info("Add file: {} from dossier {} to layout parsing request queue", fileId, dossierId);
|
||||||
rabbitTemplate.convertAndSend(LayoutParsingQueueNames.LAYOUT_PARSING_REQUEST_EXCHANGE, TenantContext.getTenantId(), layoutParsingRequest);
|
rabbitTemplate.convertAndSend(LayoutParsingQueueNames.LAYOUT_PARSING_REQUEST_EXCHANGE, TenantContext.getTenantId(), layoutParsingRequest);
|
||||||
@ -495,12 +489,12 @@ public class FileStatusService {
|
|||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public void addToPreprocessingQueue(String dossierId, String fileId, String filename) {
|
public void addToPreprocessingQueue(String dossierId, String fileId, String filename) {
|
||||||
|
|
||||||
ApplicationType type = ApplicationType.REDACT_MANAGER;
|
var processUntouchedDocumentRequest = ProcessUntouchedDocumentRequest.builder()
|
||||||
if (applicationType.equals("DocuMine")) {
|
.highlightExtractionEnabled(currentApplicationTypeProvider.isRedactManager())
|
||||||
type = ApplicationType.DOCUMINE;
|
.dossierId(dossierId)
|
||||||
}
|
.fileId(fileId)
|
||||||
|
.fileName(filename)
|
||||||
var processUntouchedDocumentRequest = ProcessUntouchedDocumentRequest.builder().applicationType(type).dossierId(dossierId).fileId(fileId).fileName(filename).build();
|
.build();
|
||||||
|
|
||||||
setStatusPreProcessingQueued(fileId);
|
setStatusPreProcessingQueued(fileId);
|
||||||
|
|
||||||
@ -772,7 +766,7 @@ public class FileStatusService {
|
|||||||
if (removeWatermark) {
|
if (removeWatermark) {
|
||||||
features.add(AzureOcrFeature.REMOVE_WATERMARKS);
|
features.add(AzureOcrFeature.REMOVE_WATERMARKS);
|
||||||
}
|
}
|
||||||
if (applicationType.equals("DocuMine")) {
|
if (currentApplicationTypeProvider.isDocuMine()) {
|
||||||
features.add(AzureOcrFeature.ROTATION_CORRECTION);
|
features.add(AzureOcrFeature.ROTATION_CORRECTION);
|
||||||
features.add(AzureOcrFeature.FONT_STYLE_DETECTION);
|
features.add(AzureOcrFeature.FONT_STYLE_DETECTION);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,27 @@
|
|||||||
|
package com.iqser.red.service.persistence.management.v1.processor.service;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingType;
|
||||||
|
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.experimental.FieldDefaults;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
|
||||||
|
public class LayoutParsingTypeProvider {
|
||||||
|
|
||||||
|
CurrentApplicationTypeProvider currentApplicationTypeProvider;
|
||||||
|
|
||||||
|
public LayoutParsingType deferFromCurrentApplicationType() {
|
||||||
|
|
||||||
|
return switch (currentApplicationTypeProvider.get()) {
|
||||||
|
case DocuMine -> LayoutParsingType.DOCUMINE_OLD;
|
||||||
|
case Clarifynd -> LayoutParsingType.CLARIFYND;
|
||||||
|
default -> LayoutParsingType.REDACT_MANAGER_WITHOUT_DUPLICATE_PARAGRAPH;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -2,10 +2,10 @@ package com.iqser.red.service.persistence.management.v1.processor.service.layout
|
|||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
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.DossierTemplatePersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.settings.FileManagementServiceSettings;
|
import com.iqser.red.service.persistence.management.v1.processor.settings.FileManagementServiceSettings;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils;
|
import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils;
|
||||||
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;
|
||||||
@ -18,21 +18,17 @@ import lombok.RequiredArgsConstructor;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class LayoutParsingRequestFactory {
|
public class LayoutParsingRequestFactory {
|
||||||
|
|
||||||
@Value("${application.type}")
|
|
||||||
private String applicationType;
|
|
||||||
|
|
||||||
private final FileManagementStorageService fileManagementStorageService;
|
private final FileManagementStorageService fileManagementStorageService;
|
||||||
|
|
||||||
private final FileManagementServiceSettings fileManagementServiceSettings;
|
private final FileManagementServiceSettings fileManagementServiceSettings;
|
||||||
|
|
||||||
|
private final DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
||||||
|
|
||||||
public LayoutParsingRequest build(String dossierId, String fileId, boolean priority) {
|
|
||||||
|
|
||||||
LayoutParsingType type = switch (applicationType) {
|
public LayoutParsingRequest build(String dossierTemplateId, String dossierId, String fileId, boolean priority) {
|
||||||
case "DocuMine" -> LayoutParsingType.DOCUMINE;
|
|
||||||
case "TAAS" -> LayoutParsingType.CLARIFYND;
|
LayoutParsingType layoutParsingType = dossierTemplatePersistenceService.getDossierTemplate(
|
||||||
default -> LayoutParsingType.REDACT_MANAGER;
|
dossierTemplateId).getLayoutParsingType();
|
||||||
};
|
|
||||||
|
|
||||||
Optional<String> optionalImageFileId = fileManagementStorageService.objectExists(dossierId, fileId, FileType.IMAGE_INFO) //
|
Optional<String> optionalImageFileId = fileManagementStorageService.objectExists(dossierId, fileId, FileType.IMAGE_INFO) //
|
||||||
? Optional.of(StorageIdUtils.getStorageId(dossierId, fileId, FileType.IMAGE_INFO)) : Optional.empty();
|
? Optional.of(StorageIdUtils.getStorageId(dossierId, fileId, FileType.IMAGE_INFO)) : Optional.empty();
|
||||||
@ -44,7 +40,7 @@ public class LayoutParsingRequestFactory {
|
|||||||
? Optional.of(StorageIdUtils.getStorageId(dossierId, fileId, FileType.VISUAL_LAYOUT)) : Optional.empty();
|
? Optional.of(StorageIdUtils.getStorageId(dossierId, fileId, FileType.VISUAL_LAYOUT)) : Optional.empty();
|
||||||
|
|
||||||
return LayoutParsingRequest.builder()
|
return LayoutParsingRequest.builder()
|
||||||
.layoutParsingType(type)
|
.layoutParsingType(layoutParsingType)
|
||||||
.identifier(QueueMessageIdentifierService.buildIdentifier(dossierId, fileId, priority))
|
.identifier(QueueMessageIdentifierService.buildIdentifier(dossierId, fileId, priority))
|
||||||
.originFileStorageId(StorageIdUtils.getStorageId(dossierId, fileId, FileType.ORIGIN))
|
.originFileStorageId(StorageIdUtils.getStorageId(dossierId, fileId, FileType.ORIGIN))
|
||||||
.imagesFileStorageId(optionalImageFileId)
|
.imagesFileStorageId(optionalImageFileId)
|
||||||
|
|||||||
@ -3,14 +3,12 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis
|
|||||||
import java.time.OffsetDateTime;
|
import java.time.OffsetDateTime;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity;
|
||||||
@ -18,6 +16,8 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
|
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.CurrentApplicationTypeProvider;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.LayoutParsingTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType;
|
||||||
@ -32,16 +32,14 @@ import lombok.RequiredArgsConstructor;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class DossierTemplatePersistenceService {
|
public class DossierTemplatePersistenceService {
|
||||||
|
|
||||||
@Value("${application.type}")
|
|
||||||
private String applicationType;
|
|
||||||
|
|
||||||
public static final String DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE = "DossierTemplate with Id %s not found.";
|
public static final String DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE = "DossierTemplate with Id %s not found.";
|
||||||
|
|
||||||
private final DossierTemplateRepository dossierTemplateRepository;
|
private final DossierTemplateRepository dossierTemplateRepository;
|
||||||
private final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService;
|
private final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService;
|
||||||
private final RulesPersistenceService rulesPersistenceService;
|
private final RulesPersistenceService rulesPersistenceService;
|
||||||
private final DictionaryPersistenceService dictionaryPersistenceService;
|
private final DictionaryPersistenceService dictionaryPersistenceService;
|
||||||
|
private final CurrentApplicationTypeProvider currentApplicationTypeProvider;
|
||||||
|
private final LayoutParsingTypeProvider layoutParsingTypeProvider;
|
||||||
private final TypeRepository typeRepository;
|
private final TypeRepository typeRepository;
|
||||||
|
|
||||||
private final static int MAX_NAME_LENGTH = 255;
|
private final static int MAX_NAME_LENGTH = 255;
|
||||||
@ -51,6 +49,10 @@ public class DossierTemplatePersistenceService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public DossierTemplateEntity createOrUpdateDossierTemplate(CreateOrUpdateDossierTemplateRequest createOrUpdateDossierRequest) {
|
public DossierTemplateEntity createOrUpdateDossierTemplate(CreateOrUpdateDossierTemplateRequest createOrUpdateDossierRequest) {
|
||||||
|
|
||||||
|
if (createOrUpdateDossierRequest.getLayoutParsingType() == null) {
|
||||||
|
createOrUpdateDossierRequest.setLayoutParsingType(layoutParsingTypeProvider.deferFromCurrentApplicationType());
|
||||||
|
}
|
||||||
|
|
||||||
if (createOrUpdateDossierRequest.getDossierTemplateId() != null) {
|
if (createOrUpdateDossierRequest.getDossierTemplateId() != null) {
|
||||||
validateDossierTemplateDates(createOrUpdateDossierRequest.getValidFrom(), createOrUpdateDossierRequest.getValidTo());
|
validateDossierTemplateDates(createOrUpdateDossierRequest.getValidFrom(), createOrUpdateDossierRequest.getValidTo());
|
||||||
validateDossierTemplate(createOrUpdateDossierRequest.getName(), createOrUpdateDossierRequest.getDescription());
|
validateDossierTemplate(createOrUpdateDossierRequest.getName(), createOrUpdateDossierRequest.getDescription());
|
||||||
@ -66,7 +68,7 @@ public class DossierTemplatePersistenceService {
|
|||||||
dossierTemplate.get().setDateModified(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
dossierTemplate.get().setDateModified(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||||
dossierTemplate.get().setModifiedBy(createOrUpdateDossierRequest.getRequestingUser());
|
dossierTemplate.get().setModifiedBy(createOrUpdateDossierRequest.getRequestingUser());
|
||||||
dossierTemplate.get().setDossierTemplateStatus(computeDossierTemplateStatus(dossierTemplate.get()));
|
dossierTemplate.get().setDossierTemplateStatus(computeDossierTemplateStatus(dossierTemplate.get()));
|
||||||
dossierTemplate.get().setLayoutParsingType(deferFromApplicationType());
|
dossierTemplate.get().setLayoutParsingType(createOrUpdateDossierRequest.getLayoutParsingType());
|
||||||
return dossierTemplate.get();
|
return dossierTemplate.get();
|
||||||
} else {
|
} else {
|
||||||
throw new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, createOrUpdateDossierRequest.getDossierTemplateId()));
|
throw new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, createOrUpdateDossierRequest.getDossierTemplateId()));
|
||||||
@ -83,7 +85,7 @@ public class DossierTemplatePersistenceService {
|
|||||||
BeanUtils.copyProperties(createOrUpdateDossierRequest, dossierTemplate);
|
BeanUtils.copyProperties(createOrUpdateDossierRequest, dossierTemplate);
|
||||||
dossierTemplate.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
dossierTemplate.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
|
||||||
dossierTemplate.setCreatedBy(createOrUpdateDossierRequest.getRequestingUser());
|
dossierTemplate.setCreatedBy(createOrUpdateDossierRequest.getRequestingUser());
|
||||||
dossierTemplate.setLayoutParsingType(deferFromApplicationType());
|
dossierTemplate.setLayoutParsingType(createOrUpdateDossierRequest.getLayoutParsingType());
|
||||||
rulesPersistenceService.setRules(RulesPersistenceService.DEFAULT_RULES, dossierTemplate.getId(), RuleFileType.ENTITY);
|
rulesPersistenceService.setRules(RulesPersistenceService.DEFAULT_RULES, dossierTemplate.getId(), RuleFileType.ENTITY);
|
||||||
var loadedDossierTemplate = dossierTemplateRepository.save(dossierTemplate);
|
var loadedDossierTemplate = dossierTemplateRepository.save(dossierTemplate);
|
||||||
loadedDossierTemplate.setDossierTemplateStatus(computeDossierTemplateStatus(loadedDossierTemplate));
|
loadedDossierTemplate.setDossierTemplateStatus(computeDossierTemplateStatus(loadedDossierTemplate));
|
||||||
@ -94,12 +96,6 @@ public class DossierTemplatePersistenceService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private LayoutParsingType deferFromApplicationType() {
|
|
||||||
|
|
||||||
return Objects.equals(applicationType, "DocuMine") ? LayoutParsingType.DOCUMINE_OLD : LayoutParsingType.REDACT_MANAGER_WITHOUT_DUPLICATE_PARAGRAPH;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void validateDossierTemplateDates(OffsetDateTime validFrom, OffsetDateTime validTo) {
|
private void validateDossierTemplateDates(OffsetDateTime validFrom, OffsetDateTime validTo) {
|
||||||
|
|
||||||
if (validFrom != null && validTo != null && validFrom.isAfter(validTo)) {
|
if (validFrom != null && validTo != null && validFrom.isAfter(validTo)) {
|
||||||
@ -155,7 +151,7 @@ public class DossierTemplatePersistenceService {
|
|||||||
if (rulesOptional.isEmpty()) {
|
if (rulesOptional.isEmpty()) {
|
||||||
return DossierTemplateStatus.INCOMPLETE;
|
return DossierTemplateStatus.INCOMPLETE;
|
||||||
}
|
}
|
||||||
if (applicationType.equals("DocuMine")) {
|
if (currentApplicationTypeProvider.isDocuMine()) {
|
||||||
var componentRulesOptional = rulesPersistenceService.getRules(dossierTemplate.getId(), RuleFileType.COMPONENT);
|
var componentRulesOptional = rulesPersistenceService.getRules(dossierTemplate.getId(), RuleFileType.COMPONENT);
|
||||||
if (componentRulesOptional.isEmpty()) {
|
if (componentRulesOptional.isEmpty()) {
|
||||||
return DossierTemplateStatus.INCOMPLETE;
|
return DossierTemplateStatus.INCOMPLETE;
|
||||||
@ -194,6 +190,14 @@ public class DossierTemplatePersistenceService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public LayoutParsingType getDossierTemplateLayoutParsingType(String dossierTemplateId) {
|
||||||
|
|
||||||
|
return dossierTemplateRepository.findLayoutParsingTypeByIdAndNotDeleted(dossierTemplateId)
|
||||||
|
.orElseThrow(() -> new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void checkDossierTemplateExistsOrElseThrow404(String dossierTemplateId) {
|
public void checkDossierTemplateExistsOrElseThrow404(String dossierTemplateId) {
|
||||||
|
|
||||||
if (!dossierTemplateRepository.existsByIdAndNotDeleted(dossierTemplateId)) {
|
if (!dossierTemplateRepository.existsByIdAndNotDeleted(dossierTemplateId)) {
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import org.springframework.data.jpa.repository.Query;
|
|||||||
import org.springframework.data.repository.query.Param;
|
import org.springframework.data.repository.query.Param;
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity;
|
||||||
|
import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingType;
|
||||||
|
|
||||||
public interface DossierTemplateRepository extends JpaRepository<DossierTemplateEntity, String> {
|
public interface DossierTemplateRepository extends JpaRepository<DossierTemplateEntity, String> {
|
||||||
|
|
||||||
@ -28,4 +29,8 @@ public interface DossierTemplateRepository extends JpaRepository<DossierTemplate
|
|||||||
|
|
||||||
boolean existsByNameAndIdNot(String name, String id);
|
boolean existsByNameAndIdNot(String name, String id);
|
||||||
|
|
||||||
|
|
||||||
|
@Query("select d.layoutParsingType from DossierTemplateEntity d where d.id = :dossierTemplateId and d.softDeleteTime is null")
|
||||||
|
Optional<LayoutParsingType> findLayoutParsingTypeByIdAndNotDeleted(@Param("dossierTemplateId") String dossierTemplateId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,7 +15,6 @@ kubernetes.namespace: ${NAMESPACE:default}
|
|||||||
project.version: 1.0-SNAPSHOT
|
project.version: 1.0-SNAPSHOT
|
||||||
|
|
||||||
application:
|
application:
|
||||||
type: "RedactManager"
|
|
||||||
rss.component-log.enabled: false
|
rss.component-log.enabled: false
|
||||||
|
|
||||||
server:
|
server:
|
||||||
|
|||||||
@ -23,6 +23,7 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.configur
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.migration.migrations.AddDateFormatsToTemplatesMigration25;
|
import com.iqser.red.service.persistence.management.v1.processor.migration.migrations.AddDateFormatsToTemplatesMigration25;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DateFormatsPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DateFormatsPersistenceService;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ImportDossierTemplateRequest;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ImportDossierTemplateRequest;
|
||||||
|
import com.knecon.fforesight.tenantcommons.TenantApplicationType;
|
||||||
|
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
|
|
||||||
@ -41,6 +42,13 @@ public class AddDateFormatsToTemplatesMigration25Test extends AbstractPersistenc
|
|||||||
private DateFormatsPersistenceService dateFormatsPersistenceService;
|
private DateFormatsPersistenceService dateFormatsPersistenceService;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected TenantApplicationType getTenantApplicationType() {
|
||||||
|
|
||||||
|
return TenantApplicationType.DocuMine;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public void testAddDateFormatsMigration() {
|
public void testAddDateFormatsMigration() {
|
||||||
|
|||||||
@ -15,12 +15,12 @@ import org.junit.jupiter.api.Test;
|
|||||||
import org.mockito.InjectMocks;
|
import org.mockito.InjectMocks;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockedStatic;
|
import org.mockito.MockedStatic;
|
||||||
import org.springframework.test.util.ReflectionTestUtils;
|
|
||||||
|
|
||||||
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.controller.ComponentControllerV2;
|
import com.iqser.red.persistence.service.v2.external.api.impl.controller.ComponentControllerV2;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotAllowedException;
|
import com.iqser.red.service.persistence.management.v1.processor.exception.NotAllowedException;
|
||||||
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.management.v1.processor.service.CurrentApplicationTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService;
|
||||||
@ -57,6 +57,8 @@ public class ComponentControllerV2Test {
|
|||||||
private StatusController statusController;
|
private StatusController statusController;
|
||||||
@Mock
|
@Mock
|
||||||
private ComponentLog mockComponentLog;
|
private ComponentLog mockComponentLog;
|
||||||
|
@Mock
|
||||||
|
private CurrentApplicationTypeProvider currentApplicationTypeProvider;
|
||||||
|
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
@ -64,8 +66,7 @@ public class ComponentControllerV2Test {
|
|||||||
void setUp() {
|
void setUp() {
|
||||||
|
|
||||||
openMocks(this);
|
openMocks(this);
|
||||||
|
when(currentApplicationTypeProvider.isDocuMine()).thenReturn(true);
|
||||||
ReflectionTestUtils.setField(componentControllerV2, "applicationType", "DocuMine");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -109,7 +110,7 @@ public class ComponentControllerV2Test {
|
|||||||
@Test
|
@Test
|
||||||
void shouldThrowNotAllowedExceptionIfApplicationTypeIsRM_getComponents() {
|
void shouldThrowNotAllowedExceptionIfApplicationTypeIsRM_getComponents() {
|
||||||
|
|
||||||
ReflectionTestUtils.setField(componentControllerV2, "applicationType", "RedactManager");
|
when(currentApplicationTypeProvider.isDocuMine()).thenReturn(false);
|
||||||
|
|
||||||
when(userService.getUserById(USER_ID)).thenReturn(Optional.of(new User()));
|
when(userService.getUserById(USER_ID)).thenReturn(Optional.of(new User()));
|
||||||
|
|
||||||
@ -120,7 +121,7 @@ public class ComponentControllerV2Test {
|
|||||||
@Test
|
@Test
|
||||||
void shouldThrowNotAllowedExceptionIfApplicationTypeIsRM_getComponentsOfDossier() {
|
void shouldThrowNotAllowedExceptionIfApplicationTypeIsRM_getComponentsOfDossier() {
|
||||||
|
|
||||||
ReflectionTestUtils.setField(componentControllerV2, "applicationType", "RedactManager");
|
when(currentApplicationTypeProvider.isDocuMine()).thenReturn(false);
|
||||||
|
|
||||||
assertThrows(NotAllowedException.class, () -> componentControllerV2.getComponentsOfDossier(DOSSIER_TEMPLATE_ID, DOSSIER_ID, false));
|
assertThrows(NotAllowedException.class, () -> componentControllerV2.getComponentsOfDossier(DOSSIER_TEMPLATE_ID, DOSSIER_ID, false));
|
||||||
}
|
}
|
||||||
@ -143,7 +144,7 @@ public class ComponentControllerV2Test {
|
|||||||
@Test
|
@Test
|
||||||
void shouldThrowNotAllowedExceptionIfApplicationTypeIsRM_addOverride() {
|
void shouldThrowNotAllowedExceptionIfApplicationTypeIsRM_addOverride() {
|
||||||
|
|
||||||
ReflectionTestUtils.setField(componentControllerV2, "applicationType", "RedactManager");
|
when(currentApplicationTypeProvider.isDocuMine()).thenReturn(false);
|
||||||
|
|
||||||
Component component = Component.builder().name("dummy").componentValues(Collections.emptyList()).build();
|
Component component = Component.builder().name("dummy").componentValues(Collections.emptyList()).build();
|
||||||
|
|
||||||
@ -163,7 +164,7 @@ public class ComponentControllerV2Test {
|
|||||||
@Test
|
@Test
|
||||||
void shouldThrowNotAllowedExceptionIfApplicationTypeIsRM_getOverrides() {
|
void shouldThrowNotAllowedExceptionIfApplicationTypeIsRM_getOverrides() {
|
||||||
|
|
||||||
ReflectionTestUtils.setField(componentControllerV2, "applicationType", "RedactManager");
|
when(currentApplicationTypeProvider.isDocuMine()).thenReturn(false);
|
||||||
|
|
||||||
assertThrows(NotAllowedException.class, () -> componentControllerV2.getOverrides(DOSSIER_TEMPLATE_ID, DOSSIER_ID, FILE_ID));
|
assertThrows(NotAllowedException.class, () -> componentControllerV2.getOverrides(DOSSIER_TEMPLATE_ID, DOSSIER_ID, FILE_ID));
|
||||||
}
|
}
|
||||||
@ -190,7 +191,7 @@ public class ComponentControllerV2Test {
|
|||||||
@Test
|
@Test
|
||||||
void shouldThrowNotAllowedExceptionIfApplicationTypeIsRM_revertOverrides() {
|
void shouldThrowNotAllowedExceptionIfApplicationTypeIsRM_revertOverrides() {
|
||||||
|
|
||||||
ReflectionTestUtils.setField(componentControllerV2, "applicationType", "RedactManager");
|
when(currentApplicationTypeProvider.isDocuMine()).thenReturn(false);
|
||||||
|
|
||||||
RevertOverrideRequest revertOverrideRequest = new RevertOverrideRequest();
|
RevertOverrideRequest revertOverrideRequest = new RevertOverrideRequest();
|
||||||
|
|
||||||
|
|||||||
@ -4,19 +4,15 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
|||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
import static org.mockito.MockitoAnnotations.openMocks;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
|
||||||
import org.junit.jupiter.api.Disabled;
|
import org.junit.jupiter.api.Disabled;
|
||||||
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;
|
||||||
import org.springframework.core.io.ClassPathResource;
|
import org.springframework.core.io.ClassPathResource;
|
||||||
import org.springframework.test.util.ReflectionTestUtils;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.iqser.red.persistence.service.v2.external.api.impl.controller.ComponentControllerV2;
|
import com.iqser.red.persistence.service.v2.external.api.impl.controller.ComponentControllerV2;
|
||||||
@ -31,6 +27,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.component.R
|
|||||||
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;
|
||||||
import com.iqser.red.service.persistence.service.v2.api.external.model.EntityReference;
|
import com.iqser.red.service.persistence.service.v2.api.external.model.EntityReference;
|
||||||
|
import com.knecon.fforesight.tenantcommons.TenantApplicationType;
|
||||||
|
|
||||||
import feign.FeignException;
|
import feign.FeignException;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
@ -59,11 +56,10 @@ public class ComponentOverrideTest extends AbstractPersistenceServerServiceTest
|
|||||||
private ComponentControllerV2 componentControllerV2;
|
private ComponentControllerV2 componentControllerV2;
|
||||||
|
|
||||||
|
|
||||||
@BeforeEach
|
@Override
|
||||||
@SneakyThrows
|
protected TenantApplicationType getTenantApplicationType() {
|
||||||
void setUp() {
|
|
||||||
|
|
||||||
ReflectionTestUtils.setField(componentControllerV2, "applicationType", "DocuMine");
|
return TenantApplicationType.DocuMine;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -30,11 +30,13 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.BadRe
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.migration.RankDeDuplicationService;
|
import com.iqser.red.service.persistence.management.v1.processor.migration.RankDeDuplicationService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentMappingService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentMappingService;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.CurrentApplicationTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.DictionaryManagementService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.DictionaryManagementService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateCloneService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateCloneService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateImportService;
|
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateImportService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateManagementService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateManagementService;
|
||||||
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.LayoutParsingTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ComponentDefinitionPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ComponentDefinitionPersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateExportService;
|
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateExportService;
|
||||||
@ -56,6 +58,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ExportDownloadRequest;
|
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ExportDownloadRequest;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.TypeRankSummary;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.TypeRankSummary;
|
||||||
import com.iqser.red.storage.commons.service.StorageService;
|
import com.iqser.red.storage.commons.service.StorageService;
|
||||||
|
import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingType;
|
||||||
|
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
|
|
||||||
@ -114,6 +117,11 @@ public class DossierTemplateCloneAndExportWithDuplicateRanksTest {
|
|||||||
@MockBean
|
@MockBean
|
||||||
private SystemManagedTypesImport systemManagedTypesImport;
|
private SystemManagedTypesImport systemManagedTypesImport;
|
||||||
|
|
||||||
|
@MockBean
|
||||||
|
private CurrentApplicationTypeProvider currentApplicationTypeProvider;
|
||||||
|
@MockBean
|
||||||
|
private LayoutParsingTypeProvider layoutParsingTypeProvider;
|
||||||
|
|
||||||
ObjectMapper mapper;
|
ObjectMapper mapper;
|
||||||
|
|
||||||
private DossierTemplateManagementService dossierTemplateManagementService;
|
private DossierTemplateManagementService dossierTemplateManagementService;
|
||||||
@ -134,6 +142,8 @@ public class DossierTemplateCloneAndExportWithDuplicateRanksTest {
|
|||||||
legalBasisMappingPersistenceService,
|
legalBasisMappingPersistenceService,
|
||||||
rulesPersistenceService,
|
rulesPersistenceService,
|
||||||
dictionaryPersistenceService,
|
dictionaryPersistenceService,
|
||||||
|
currentApplicationTypeProvider,
|
||||||
|
layoutParsingTypeProvider,
|
||||||
typeRepository);
|
typeRepository);
|
||||||
dossierTemplateCloneService = new DossierTemplateCloneService(dossierTemplateRepository,
|
dossierTemplateCloneService = new DossierTemplateCloneService(dossierTemplateRepository,
|
||||||
legalBasisMappingPersistenceService,
|
legalBasisMappingPersistenceService,
|
||||||
@ -189,6 +199,9 @@ public class DossierTemplateCloneAndExportWithDuplicateRanksTest {
|
|||||||
typesValues.add(typeRank2);
|
typesValues.add(typeRank2);
|
||||||
when(dictionaryPersistenceService.getTypeRankSummaryList(dossierTemplateId)).thenReturn(typesValues);
|
when(dictionaryPersistenceService.getTypeRankSummaryList(dossierTemplateId)).thenReturn(typesValues);
|
||||||
|
|
||||||
|
when(currentApplicationTypeProvider.isDocuMine()).thenReturn(false);
|
||||||
|
when(layoutParsingTypeProvider.deferFromCurrentApplicationType()).thenReturn(LayoutParsingType.REDACT_MANAGER_WITHOUT_DUPLICATE_PARAGRAPH);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,6 @@ import org.junit.jupiter.api.Test;
|
|||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||||
import org.springframework.test.util.ReflectionTestUtils;
|
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity;
|
||||||
@ -29,8 +28,10 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.configur
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentMappingService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.ComponentMappingService;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.CurrentApplicationTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateCloneService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateCloneService;
|
||||||
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.LayoutParsingTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ComponentDefinitionPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ComponentDefinitionPersistenceService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DateFormatsPersistenceService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DateFormatsPersistenceService;
|
||||||
@ -48,6 +49,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
|
|||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.CloneDossierTemplateRequest;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.CloneDossierTemplateRequest;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplateStatus;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplateStatus;
|
||||||
import com.iqser.red.storage.commons.service.StorageService;
|
import com.iqser.red.storage.commons.service.StorageService;
|
||||||
|
import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingType;
|
||||||
|
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
|
|
||||||
@ -103,6 +105,12 @@ public class DossierTemplateCloneServiceTest {
|
|||||||
@MockBean
|
@MockBean
|
||||||
private ComponentDefinitionPersistenceService componentDefinitionPersistenceService;
|
private ComponentDefinitionPersistenceService componentDefinitionPersistenceService;
|
||||||
|
|
||||||
|
@MockBean
|
||||||
|
private CurrentApplicationTypeProvider currentApplicationTypeProvider;
|
||||||
|
|
||||||
|
@MockBean
|
||||||
|
private LayoutParsingTypeProvider layoutParsingTypeProvider;
|
||||||
|
|
||||||
private DossierTemplateCloneService dossierTemplateCloneService;
|
private DossierTemplateCloneService dossierTemplateCloneService;
|
||||||
|
|
||||||
private DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
private DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
||||||
@ -118,9 +126,12 @@ public class DossierTemplateCloneServiceTest {
|
|||||||
legalBasisMappingPersistenceService,
|
legalBasisMappingPersistenceService,
|
||||||
rulesPersistenceService,
|
rulesPersistenceService,
|
||||||
dictionaryPersistenceService,
|
dictionaryPersistenceService,
|
||||||
|
currentApplicationTypeProvider,
|
||||||
|
layoutParsingTypeProvider,
|
||||||
typeRepository);
|
typeRepository);
|
||||||
|
|
||||||
ReflectionTestUtils.setField(dossierTemplatePersistenceService, "applicationType", "RedactManager");
|
when(currentApplicationTypeProvider.isDocuMine()).thenReturn(true);
|
||||||
|
when(layoutParsingTypeProvider.deferFromCurrentApplicationType()).thenReturn(LayoutParsingType.DOCUMINE_OLD);
|
||||||
|
|
||||||
dossierTemplateCloneService = new DossierTemplateCloneService(dossierTemplateRepository,
|
dossierTemplateCloneService = new DossierTemplateCloneService(dossierTemplateRepository,
|
||||||
legalBasisMappingPersistenceService,
|
legalBasisMappingPersistenceService,
|
||||||
@ -152,6 +163,7 @@ public class DossierTemplateCloneServiceTest {
|
|||||||
dummyTemplate.setValidFrom(OffsetDateTime.now().minusYears(6));
|
dummyTemplate.setValidFrom(OffsetDateTime.now().minusYears(6));
|
||||||
dummyTemplate.setValidTo(OffsetDateTime.now().plusYears(2));
|
dummyTemplate.setValidTo(OffsetDateTime.now().plusYears(2));
|
||||||
dummyTemplate.setDossierTemplateStatus(DossierTemplateStatus.INACTIVE);
|
dummyTemplate.setDossierTemplateStatus(DossierTemplateStatus.INACTIVE);
|
||||||
|
dummyTemplate.setLayoutParsingType(LayoutParsingType.REDACT_MANAGER_WITHOUT_DUPLICATE_PARAGRAPH);
|
||||||
when(dossierTemplateRepository.findById(anyString())).thenReturn(Optional.of(dummyTemplate));
|
when(dossierTemplateRepository.findById(anyString())).thenReturn(Optional.of(dummyTemplate));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -64,6 +64,7 @@ import com.iqser.red.service.persistence.management.v1.processor.dataexchange.se
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ApplicationConfigurationEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ApplicationConfigurationEntity;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles;
|
import com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.ApplicationConfigService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.ApplicationConfigService;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.service.CurrentApplicationTypeProvider;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.DictionaryManagementService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.DictionaryManagementService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.EntityLogService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.EntityLogService;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService;
|
import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService;
|
||||||
@ -116,6 +117,7 @@ import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverte
|
|||||||
import com.knecon.fforesight.keycloakcommons.security.TenantAuthenticationManagerResolver;
|
import com.knecon.fforesight.keycloakcommons.security.TenantAuthenticationManagerResolver;
|
||||||
import com.knecon.fforesight.mongo.database.commons.liquibase.TenantCreatedMongoEventHandler;
|
import com.knecon.fforesight.mongo.database.commons.liquibase.TenantCreatedMongoEventHandler;
|
||||||
import com.knecon.fforesight.tenantcommons.EncryptionDecryptionService;
|
import com.knecon.fforesight.tenantcommons.EncryptionDecryptionService;
|
||||||
|
import com.knecon.fforesight.tenantcommons.TenantApplicationType;
|
||||||
import com.knecon.fforesight.tenantcommons.TenantContext;
|
import com.knecon.fforesight.tenantcommons.TenantContext;
|
||||||
import com.knecon.fforesight.tenantcommons.TenantsClient;
|
import com.knecon.fforesight.tenantcommons.TenantsClient;
|
||||||
import com.knecon.fforesight.tenantcommons.model.AuthDetails;
|
import com.knecon.fforesight.tenantcommons.model.AuthDetails;
|
||||||
@ -129,8 +131,10 @@ import com.mongodb.MongoCommandException;
|
|||||||
import com.mongodb.client.MongoClient;
|
import com.mongodb.client.MongoClient;
|
||||||
import com.mongodb.client.MongoClients;
|
import com.mongodb.client.MongoClients;
|
||||||
import com.mongodb.client.MongoDatabase;
|
import com.mongodb.client.MongoDatabase;
|
||||||
|
|
||||||
import io.micrometer.prometheus.PrometheusMeterRegistry;
|
import io.micrometer.prometheus.PrometheusMeterRegistry;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
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;
|
||||||
@ -146,8 +150,7 @@ import org.quartz.Scheduler;
|
|||||||
@EnableFeignClients(basePackageClasses = FileClient.class)
|
@EnableFeignClients(basePackageClasses = FileClient.class)
|
||||||
@Import(AbstractPersistenceServerServiceTest.TestConfiguration.class)
|
@Import(AbstractPersistenceServerServiceTest.TestConfiguration.class)
|
||||||
@ContextConfiguration(initializers = {AbstractPersistenceServerServiceTest.Initializer.class})
|
@ContextConfiguration(initializers = {AbstractPersistenceServerServiceTest.Initializer.class})
|
||||||
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT,
|
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT, properties = "spring-hibernate-query-utils.n-plus-one-queries-detection.error-level=INFO")
|
||||||
properties = "spring-hibernate-query-utils.n-plus-one-queries-detection.error-level=INFO")
|
|
||||||
public abstract class AbstractPersistenceServerServiceTest {
|
public abstract class AbstractPersistenceServerServiceTest {
|
||||||
|
|
||||||
public static final String TENANT_1 = "redaction";
|
public static final String TENANT_1 = "redaction";
|
||||||
@ -279,6 +282,8 @@ public abstract class AbstractPersistenceServerServiceTest {
|
|||||||
private SystemManagedTypesImport systemManagedTypesImport;
|
private SystemManagedTypesImport systemManagedTypesImport;
|
||||||
@Autowired
|
@Autowired
|
||||||
private DictionaryManagementService dictionaryManagementService;
|
private DictionaryManagementService dictionaryManagementService;
|
||||||
|
@MockBean
|
||||||
|
private CurrentApplicationTypeProvider currentApplicationTypeProvider;
|
||||||
|
|
||||||
|
|
||||||
private static String[] getAllRoles() {
|
private static String[] getAllRoles() {
|
||||||
@ -299,6 +304,15 @@ public abstract class AbstractPersistenceServerServiceTest {
|
|||||||
public void setupTenantContext() {
|
public void setupTenantContext() {
|
||||||
|
|
||||||
TenantContext.setTenantId(TENANT_1);
|
TenantContext.setTenantId(TENANT_1);
|
||||||
|
when(currentApplicationTypeProvider.get()).thenReturn(getTenantApplicationType());
|
||||||
|
when(currentApplicationTypeProvider.isDocuMine()).thenReturn(getTenantApplicationType().equals(TenantApplicationType.DocuMine));
|
||||||
|
when(currentApplicationTypeProvider.isRedactManager()).thenReturn(getTenantApplicationType().equals(TenantApplicationType.RedactManager));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected TenantApplicationType getTenantApplicationType() {
|
||||||
|
|
||||||
|
return TenantApplicationType.RedactManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -328,33 +342,33 @@ public abstract class AbstractPersistenceServerServiceTest {
|
|||||||
|
|
||||||
var allUsers = new ArrayList<com.iqser.red.service.persistence.management.v1.processor.service.users.model.User>();
|
var allUsers = new ArrayList<com.iqser.red.service.persistence.management.v1.processor.service.users.model.User>();
|
||||||
allUsers.add(com.iqser.red.service.persistence.management.v1.processor.service.users.model.User.builder()
|
allUsers.add(com.iqser.red.service.persistence.management.v1.processor.service.users.model.User.builder()
|
||||||
.userId("manageradmin1@test.com")
|
.userId("manageradmin1@test.com")
|
||||||
.email("manageradmin1@test.com")
|
.email("manageradmin1@test.com")
|
||||||
.isActive(true)
|
.isActive(true)
|
||||||
.roles(Set.of(getAllRoles()))
|
.roles(Set.of(getAllRoles()))
|
||||||
.build());
|
.build());
|
||||||
allUsers.add(com.iqser.red.service.persistence.management.v1.processor.service.users.model.User.builder()
|
allUsers.add(com.iqser.red.service.persistence.management.v1.processor.service.users.model.User.builder()
|
||||||
.userId("manageradmin2@test.com")
|
.userId("manageradmin2@test.com")
|
||||||
.email("manageradmin2@test.com")
|
.email("manageradmin2@test.com")
|
||||||
.isActive(true)
|
.isActive(true)
|
||||||
.roles(Set.of(getAllRoles()))
|
.roles(Set.of(getAllRoles()))
|
||||||
.build());
|
.build());
|
||||||
allUsers.add(com.iqser.red.service.persistence.management.v1.processor.service.users.model.User.builder()
|
allUsers.add(com.iqser.red.service.persistence.management.v1.processor.service.users.model.User.builder()
|
||||||
.userId("manageradmin3@test.com")
|
.userId("manageradmin3@test.com")
|
||||||
.email("manageradmin3@test.com")
|
.email("manageradmin3@test.com")
|
||||||
.isActive(true)
|
.isActive(true)
|
||||||
.roles(Set.of(getAllRoles()))
|
.roles(Set.of(getAllRoles()))
|
||||||
.build());
|
.build());
|
||||||
Set<String> allRolesWithoutValid = Arrays.stream(getAllRoles())
|
Set<String> allRolesWithoutValid = Arrays.stream(getAllRoles())
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
allRolesWithoutValid.remove("RED_USER");
|
allRolesWithoutValid.remove("RED_USER");
|
||||||
allRolesWithoutValid.remove("RED_MANAGER");
|
allRolesWithoutValid.remove("RED_MANAGER");
|
||||||
allUsers.add(com.iqser.red.service.persistence.management.v1.processor.service.users.model.User.builder()
|
allUsers.add(com.iqser.red.service.persistence.management.v1.processor.service.users.model.User.builder()
|
||||||
.userId("manageradmin4@test.com")
|
.userId("manageradmin4@test.com")
|
||||||
.email("manageradmin4@test.com")
|
.email("manageradmin4@test.com")
|
||||||
.isActive(true)
|
.isActive(true)
|
||||||
.roles(allRolesWithoutValid)
|
.roles(allRolesWithoutValid)
|
||||||
.build());
|
.build());
|
||||||
when(usersClient.getAllUsers(false)).thenReturn(allUsers);
|
when(usersClient.getAllUsers(false)).thenReturn(allUsers);
|
||||||
when(usersClient.getAllUsers(true)).thenReturn(allUsers);
|
when(usersClient.getAllUsers(true)).thenReturn(allUsers);
|
||||||
// doNothing().when(pdfTronRedactionClient).testDigitalCurrentSignature(Mockito.any());
|
// doNothing().when(pdfTronRedactionClient).testDigitalCurrentSignature(Mockito.any());
|
||||||
@ -362,18 +376,11 @@ public abstract class AbstractPersistenceServerServiceTest {
|
|||||||
when(rabbitAdmin.getQueueInfo(any())).thenReturn(null);
|
when(rabbitAdmin.getQueueInfo(any())).thenReturn(null);
|
||||||
|
|
||||||
when(entityLogService.getEntityLog(any(), any())).thenReturn(new EntityLog(1, 1, Lists.newArrayList(), null, 0, 0, 0, 0));
|
when(entityLogService.getEntityLog(any(), any())).thenReturn(new EntityLog(1, 1, Lists.newArrayList(), null, 0, 0, 0, 0));
|
||||||
when(entityLogService.getEntityLog(any(), any(), any(), Mockito.anyBoolean())).thenReturn(new EntityLog(1,
|
when(entityLogService.getEntityLog(any(), any(), any(), Mockito.anyBoolean())).thenReturn(new EntityLog(1, 1, Lists.newArrayList(), null, 0, 0, 0, 0));
|
||||||
1,
|
|
||||||
Lists.newArrayList(),
|
|
||||||
null,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0));
|
|
||||||
when(redactionClient.testRules(any())).thenReturn(DroolsValidation.builder()
|
when(redactionClient.testRules(any())).thenReturn(DroolsValidation.builder()
|
||||||
.syntaxErrorMessages(Collections.emptyList())
|
.syntaxErrorMessages(Collections.emptyList())
|
||||||
.deprecatedWarnings(Collections.emptyList())
|
.deprecatedWarnings(Collections.emptyList())
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -392,41 +399,41 @@ public abstract class AbstractPersistenceServerServiceTest {
|
|||||||
redactionTenant.setDisplayName(TENANT_1);
|
redactionTenant.setDisplayName(TENANT_1);
|
||||||
redactionTenant.setAuthDetails(new AuthDetails());
|
redactionTenant.setAuthDetails(new AuthDetails());
|
||||||
redactionTenant.setDatabaseConnection(DatabaseConnection.builder()
|
redactionTenant.setDatabaseConnection(DatabaseConnection.builder()
|
||||||
.driver("postgresql")
|
.driver("postgresql")
|
||||||
.host(postgreSQLContainerMaster.getHost())
|
.host(postgreSQLContainerMaster.getHost())
|
||||||
.port(port)
|
.port(port)
|
||||||
.database("integration-tests-db-master")
|
.database("integration-tests-db-master")
|
||||||
.schema("public")
|
.schema("public")
|
||||||
.username("sa")
|
.username("sa")
|
||||||
.password(encryptionDecryptionService.encrypt("sa"))
|
.password(encryptionDecryptionService.encrypt("sa"))
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
redactionTenant.setSearchConnection(SearchConnection.builder()
|
redactionTenant.setSearchConnection(SearchConnection.builder()
|
||||||
.hosts(Set.of("elasticsearchHost"))
|
.hosts(Set.of("elasticsearchHost"))
|
||||||
.port(9200)
|
.port(9200)
|
||||||
.scheme("https")
|
.scheme("https")
|
||||||
.username("elastic")
|
.username("elastic")
|
||||||
.numberOfShards("1")
|
.numberOfShards("1")
|
||||||
.numberOfReplicas("5")
|
.numberOfReplicas("5")
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
redactionTenant.setS3StorageConnection(S3StorageConnection.builder()
|
redactionTenant.setS3StorageConnection(S3StorageConnection.builder()
|
||||||
.key("key")
|
.key("key")
|
||||||
.secret("secret")
|
.secret("secret")
|
||||||
.signerType("signerType")
|
.signerType("signerType")
|
||||||
.bucketName("bucketName")
|
.bucketName("bucketName")
|
||||||
.region("eu")
|
.region("eu")
|
||||||
.endpoint("endpoint")
|
.endpoint("endpoint")
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
redactionTenant.setMongoDBConnection(MongoDBConnection.builder()
|
redactionTenant.setMongoDBConnection(MongoDBConnection.builder()
|
||||||
.prefix("mongodb")
|
.prefix("mongodb")
|
||||||
.username(MONGO_USERNAME)
|
.username(MONGO_USERNAME)
|
||||||
.password(encryptionDecryptionService.encrypt(MONGO_PASSWORD))
|
.password(encryptionDecryptionService.encrypt(MONGO_PASSWORD))
|
||||||
.address(mongoDbContainer.getHost() + ":" + mongoDbContainer.getFirstMappedPort())
|
.address(mongoDbContainer.getHost() + ":" + mongoDbContainer.getFirstMappedPort())
|
||||||
.database(MONGO_DATABASE)
|
.database(MONGO_DATABASE)
|
||||||
.options("")
|
.options("")
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
var redactionTenant2 = new TenantResponse();
|
var redactionTenant2 = new TenantResponse();
|
||||||
redactionTenant2.setTenantId(TENANT_2);
|
redactionTenant2.setTenantId(TENANT_2);
|
||||||
@ -434,41 +441,41 @@ public abstract class AbstractPersistenceServerServiceTest {
|
|||||||
redactionTenant2.setDisplayName(TENANT_2);
|
redactionTenant2.setDisplayName(TENANT_2);
|
||||||
redactionTenant2.setAuthDetails(new AuthDetails());
|
redactionTenant2.setAuthDetails(new AuthDetails());
|
||||||
redactionTenant2.setDatabaseConnection(DatabaseConnection.builder()
|
redactionTenant2.setDatabaseConnection(DatabaseConnection.builder()
|
||||||
.driver("postgresql")
|
.driver("postgresql")
|
||||||
.host(postgreSQLContainerMaster.getHost())
|
.host(postgreSQLContainerMaster.getHost())
|
||||||
.port(port)
|
.port(port)
|
||||||
.database("integration-tests-db-master")
|
.database("integration-tests-db-master")
|
||||||
.schema("public")
|
.schema("public")
|
||||||
.username("sa")
|
.username("sa")
|
||||||
.password(encryptionDecryptionService.encrypt("sa"))
|
.password(encryptionDecryptionService.encrypt("sa"))
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
redactionTenant2.setSearchConnection(SearchConnection.builder()
|
redactionTenant2.setSearchConnection(SearchConnection.builder()
|
||||||
.hosts(Set.of("elasticsearchHost"))
|
.hosts(Set.of("elasticsearchHost"))
|
||||||
.port(9200)
|
.port(9200)
|
||||||
.scheme("https")
|
.scheme("https")
|
||||||
.username("elastic")
|
.username("elastic")
|
||||||
.numberOfShards("1")
|
.numberOfShards("1")
|
||||||
.numberOfReplicas("5")
|
.numberOfReplicas("5")
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
redactionTenant2.setS3StorageConnection(S3StorageConnection.builder()
|
redactionTenant2.setS3StorageConnection(S3StorageConnection.builder()
|
||||||
.key("key")
|
.key("key")
|
||||||
.secret("secret")
|
.secret("secret")
|
||||||
.signerType("signerType")
|
.signerType("signerType")
|
||||||
.bucketName("bucketName")
|
.bucketName("bucketName")
|
||||||
.region("eu")
|
.region("eu")
|
||||||
.endpoint("endpoint")
|
.endpoint("endpoint")
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
redactionTenant2.setMongoDBConnection(MongoDBConnection.builder()
|
redactionTenant2.setMongoDBConnection(MongoDBConnection.builder()
|
||||||
.prefix("mongodb")
|
.prefix("mongodb")
|
||||||
.username(MONGO_USERNAME)
|
.username(MONGO_USERNAME)
|
||||||
.password(encryptionDecryptionService.encrypt(MONGO_PASSWORD))
|
.password(encryptionDecryptionService.encrypt(MONGO_PASSWORD))
|
||||||
.address(mongoDbContainer.getHost() + ":" + mongoDbContainer.getFirstMappedPort())
|
.address(mongoDbContainer.getHost() + ":" + mongoDbContainer.getFirstMappedPort())
|
||||||
.database(TENANT_2)
|
.database(TENANT_2)
|
||||||
.options("")
|
.options("")
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
when(tenantsClient.getTenant(TENANT_1)).thenReturn(redactionTenant);
|
when(tenantsClient.getTenant(TENANT_1)).thenReturn(redactionTenant);
|
||||||
when(tenantsClient.getTenant(TENANT_2)).thenReturn(redactionTenant2);
|
when(tenantsClient.getTenant(TENANT_2)).thenReturn(redactionTenant2);
|
||||||
@ -593,14 +600,14 @@ public abstract class AbstractPersistenceServerServiceTest {
|
|||||||
log.info("Hosts are - Redis: {}, Postgres: {}, MongoDB: {}", redisContainer.getHost(), postgreSQLContainerMaster.getHost(), mongoInstance.getHost());
|
log.info("Hosts are - Redis: {}, Postgres: {}, MongoDB: {}", redisContainer.getHost(), postgreSQLContainerMaster.getHost(), mongoInstance.getHost());
|
||||||
|
|
||||||
TestPropertyValues.of("REDIS_PORT=" + redisContainer.getFirstMappedPort(),
|
TestPropertyValues.of("REDIS_PORT=" + redisContainer.getFirstMappedPort(),
|
||||||
"REDIS_HOST=" + redisContainer.getHost(),
|
"REDIS_HOST=" + redisContainer.getHost(),
|
||||||
"MONGODB_HOST=" + mongoInstance.getHost(),
|
"MONGODB_HOST=" + mongoInstance.getHost(),
|
||||||
"MONGODB_PORT=" + mongoInstance.getFirstMappedPort(),
|
"MONGODB_PORT=" + mongoInstance.getFirstMappedPort(),
|
||||||
"MONGODB_USER=" + MONGO_USERNAME,
|
"MONGODB_USER=" + MONGO_USERNAME,
|
||||||
"MONGODB_PASSWORD=" + MONGO_PASSWORD,
|
"MONGODB_PASSWORD=" + MONGO_PASSWORD,
|
||||||
"fforesight.jobs.enabled=false",
|
"fforesight.jobs.enabled=false",
|
||||||
"fforesight.keycloak.enabled=false",
|
"fforesight.keycloak.enabled=false",
|
||||||
"POD_NAME=persistence-service").applyTo(configurableApplicationContext.getEnvironment());
|
"POD_NAME=persistence-service").applyTo(configurableApplicationContext.getEnvironment());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -608,10 +615,10 @@ public abstract class AbstractPersistenceServerServiceTest {
|
|||||||
private static void createMongoDBDatabase(MongoDBTestContainer mongoDBTestContainer, String databaseName) {
|
private static void createMongoDBDatabase(MongoDBTestContainer mongoDBTestContainer, String databaseName) {
|
||||||
|
|
||||||
try (MongoClient mongoClient = MongoClients.create(String.format("mongodb://%s:%s@%s:%s/",
|
try (MongoClient mongoClient = MongoClients.create(String.format("mongodb://%s:%s@%s:%s/",
|
||||||
MONGO_USERNAME,
|
MONGO_USERNAME,
|
||||||
MONGO_PASSWORD,
|
MONGO_PASSWORD,
|
||||||
mongoDBTestContainer.getHost(),
|
mongoDBTestContainer.getHost(),
|
||||||
mongoDBTestContainer.getFirstMappedPort()))) {
|
mongoDBTestContainer.getFirstMappedPort()))) {
|
||||||
MongoDatabase database = mongoClient.getDatabase(databaseName);
|
MongoDatabase database = mongoClient.getDatabase(databaseName);
|
||||||
BsonDocument createUserCommand = new BsonDocument();
|
BsonDocument createUserCommand = new BsonDocument();
|
||||||
createUserCommand.append("createUser", new BsonString(MONGO_USERNAME));
|
createUserCommand.append("createUser", new BsonString(MONGO_USERNAME));
|
||||||
@ -651,6 +658,7 @@ public abstract class AbstractPersistenceServerServiceTest {
|
|||||||
return mock;
|
return mock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public InMemoryUserDetailsManager userDetailsService(PasswordEncoder passwordEncoder) {
|
public InMemoryUserDetailsManager userDetailsService(PasswordEncoder passwordEncoder) {
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,5 @@
|
|||||||
monitoring.enabled: true
|
monitoring.enabled: true
|
||||||
|
|
||||||
application:
|
|
||||||
type: "RedactManager"
|
|
||||||
|
|
||||||
spring:
|
spring:
|
||||||
main:
|
main:
|
||||||
|
|||||||
@ -6,6 +6,11 @@ plugins {
|
|||||||
val springBootStarterVersion = "3.1.5"
|
val springBootStarterVersion = "3.1.5"
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
||||||
|
api("com.knecon.fforesight:layoutparser-service-internal-api:0.188.0") {
|
||||||
|
exclude(group = "com.iqser.red.service", module = "persistence-service-internal-api-v1")
|
||||||
|
exclude(group = "com.iqser.red.service", module = "persistence-service-shared-api-v1")
|
||||||
|
}
|
||||||
api("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.2")
|
api("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.2")
|
||||||
api("com.google.guava:guava:31.1-jre")
|
api("com.google.guava:guava:31.1-jre")
|
||||||
api("org.springframework.boot:spring-boot-starter-validation:3.1.3")
|
api("org.springframework.boot:spring-boot-starter-validation:3.1.3")
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import java.time.OffsetDateTime;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingType;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -41,4 +43,6 @@ public class CreateOrUpdateDossierTemplateRequest {
|
|||||||
|
|
||||||
private boolean removeWatermark;
|
private boolean removeWatermark;
|
||||||
|
|
||||||
|
private LayoutParsingType layoutParsingType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import java.util.HashSet;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingType;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
@ -36,5 +37,6 @@ public class DossierTemplate {
|
|||||||
private boolean applyDictionaryUpdatesToAllDossiersByDefault;
|
private boolean applyDictionaryUpdatesToAllDossiersByDefault;
|
||||||
private boolean ocrByDefault;
|
private boolean ocrByDefault;
|
||||||
private boolean removeWatermark;
|
private boolean removeWatermark;
|
||||||
|
private LayoutParsingType layoutParsingType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,7 @@ dependencies {
|
|||||||
api("com.knecon.fforesight:mongo-database-commons:0.16.0") {
|
api("com.knecon.fforesight:mongo-database-commons:0.16.0") {
|
||||||
exclude(group = "com.knecon.fforesight", module = "tenant-commons")
|
exclude(group = "com.knecon.fforesight", module = "tenant-commons")
|
||||||
}
|
}
|
||||||
api("com.knecon.fforesight:tenant-commons:0.31.0")
|
api("com.knecon.fforesight:tenant-commons:0.31.0-RED10196.0")
|
||||||
api("org.springframework.boot:spring-boot-starter-data-mongodb:${springBootStarterVersion}")
|
api("org.springframework.boot:spring-boot-starter-data-mongodb:${springBootStarterVersion}")
|
||||||
api("org.springframework.boot:spring-boot-starter-validation:3.1.3")
|
api("org.springframework.boot:spring-boot-starter-validation:3.1.3")
|
||||||
testImplementation("com.iqser.red.commons:test-commons:2.1.0")
|
testImplementation("com.iqser.red.commons:test-commons:2.1.0")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user