diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierTemplateController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierTemplateController.java index 22203fb67..dfd3a3849 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierTemplateController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierTemplateController.java @@ -306,6 +306,7 @@ public class DossierTemplateController implements DossierTemplateResource { .keepOverlappingObjects(dossierTemplate.isKeepOverlappingObjects()) .applyDictionaryUpdatesToAllDossiersByDefault(dossierTemplate.isApplyDictionaryUpdatesToAllDossiersByDefault()) .ocrByDefault(dossierTemplate.isOcrByDefault()) + .removeWatermark(dossierTemplate.isRemoveWatermark()) .build(); } diff --git a/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/DossierTemplateInternalController.java b/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/DossierTemplateInternalController.java index 76befe632..ba9856054 100644 --- a/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/DossierTemplateInternalController.java +++ b/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/DossierTemplateInternalController.java @@ -30,4 +30,10 @@ public class DossierTemplateInternalController implements DossierTemplateResourc return convert(dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId), DossierTemplate.class); } + @Override + public DossierTemplate getDossierTemplateById(String dossierTemplateId) { + + return convert(dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId), DossierTemplate.class); + } + } diff --git a/persistence-service-v1/persistence-service-internal-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/internal/resources/DossierTemplateResource.java b/persistence-service-v1/persistence-service-internal-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/internal/resources/DossierTemplateResource.java index 7a0d2432b..308bf0f4f 100644 --- a/persistence-service-v1/persistence-service-internal-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/internal/resources/DossierTemplateResource.java +++ b/persistence-service-v1/persistence-service-internal-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/internal/resources/DossierTemplateResource.java @@ -1,6 +1,8 @@ package com.iqser.red.service.persistence.service.v1.api.internal.resources; import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; @@ -14,9 +16,15 @@ public interface DossierTemplateResource { String IMPORT_PATH = "/import"; + String DOSSIER_TEMPLATE_ID_PARAM = "dossierTemplateId"; + + String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_TEMPLATE_ID_PARAM + "}"; @ResponseBody @PostMapping(value = InternalApi.BASE_PATH + DOSSIER_TEMPLATE_PATH + IMPORT_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) DossierTemplate importDossierTemplate(@RequestBody ImportDossierTemplateRequest request); + @GetMapping(value = InternalApi.BASE_PATH + DOSSIER_TEMPLATE_PATH + DOSSIER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) + DossierTemplate getDossierTemplateById(@PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierTemplateEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierTemplateEntity.java index e75e90f7e..4571064c5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierTemplateEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierTemplateEntity.java @@ -81,6 +81,9 @@ public class DossierTemplateEntity { @Column(name = "ocr_by_default") private boolean ocrByDefault; + @Column(name = "remove_watermark") + private boolean removeWatermark; + @Builder.Default @Column(columnDefinition = "text", name = "download_file_types") @Convert(converter = JSONDownloadFileTypeConverter.class) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml index 73cb71de7..00f1559f5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml @@ -149,3 +149,5 @@ databaseChangeLog: file: db/changelog/tenant/53-add-apply_dictionary_updates_to_all_dossiers_to_dossier_template.yaml - include: file: db/changelog/tenant/104-add-ocr-by-default-to-dossier-template.yaml + - include: + file: db/changelog/tenant/105-add-remove-watermark-to-dossier-template.yaml diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/105-add-remove-watermark-to-dossier-template.yaml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/105-add-remove-watermark-to-dossier-template.yaml new file mode 100644 index 000000000..8d9550428 --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/105-add-remove-watermark-to-dossier-template.yaml @@ -0,0 +1,12 @@ +databaseChangeLog: + - changeSet: + id: add-ocr-by-default-to-dossier-template + author: andreiisvoran + changes: + - addColumn: + columns: + - column: + name: remove_watermark + type: BOOLEAN + defaultValue: false + tableName: dossier_template diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java index e58c984a1..63a91882e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java @@ -747,4 +747,30 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(loadedTemplate.isOcrByDefault()).isFalse(); } + @Test + public void testDossierTemplateWithRemoveWatermark() { + + String name = "Test Dossier Template"; + + DossierTemplateModel dossierTemplateModel = new DossierTemplateModel(); + dossierTemplateModel.setDownloadFileTypes(Sets.newHashSet(DownloadFileType.ORIGINAL)); + dossierTemplateModel.setName(name); + dossierTemplateModel.setDescription("Template 1"); + dossierTemplateModel.setValidFrom(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); + dossierTemplateModel.setValidTo(OffsetDateTime.now().plusHours(1).truncatedTo(ChronoUnit.MILLIS)); + dossierTemplateModel.setRemoveWatermark(true); + + DossierTemplateModel result = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel); + assertThat(result.getName()).isEqualTo(name); + assertThat(result.isRemoveWatermark()).isTrue(); + + DossierTemplateModel loadedTemplate = dossierTemplateClient.getDossierTemplate(result.getDossierTemplateId()); + assertThat(loadedTemplate).isEqualTo(result); + + dossierTemplateModel.setName("Test Dossier Template Update"); + dossierTemplateModel.setRemoveWatermark(false); + loadedTemplate = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel); + assertThat(loadedTemplate.isRemoveWatermark()).isFalse(); + } + } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/DossierTemplateModel.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/DossierTemplateModel.java index 6fec62e5f..8dc9fe89b 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/DossierTemplateModel.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/DossierTemplateModel.java @@ -68,6 +68,9 @@ public class DossierTemplateModel { @Schema(description = "Flag that specifies if OCR is automatically performed on upload for all dossiers of this template") private boolean ocrByDefault; + @Schema(description = "Flag that specifies the watermark removal in documents will be performed before the OCR processing") + private boolean removeWatermark; + public String getId() { return dossierTemplateId; diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/CreateOrUpdateDossierTemplateRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/CreateOrUpdateDossierTemplateRequest.java index df9d169bc..f7923d336 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/CreateOrUpdateDossierTemplateRequest.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/CreateOrUpdateDossierTemplateRequest.java @@ -39,4 +39,6 @@ public class CreateOrUpdateDossierTemplateRequest { private boolean ocrByDefault; + private boolean removeWatermark; + } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/DossierTemplate.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/DossierTemplate.java index 282f6d272..072b75dfa 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/DossierTemplate.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/DossierTemplate.java @@ -35,5 +35,6 @@ public class DossierTemplate { private boolean keepOverlappingObjects; private boolean applyDictionaryUpdatesToAllDossiersByDefault; private boolean ocrByDefault; + private boolean removeWatermark; }