diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java index ececa6918..9a10726f7 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java @@ -13,6 +13,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CloneDossierTemplateRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateStatus; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis; import com.iqser.red.storage.commons.service.StorageService; @@ -47,6 +48,7 @@ public class DossierTemplateCloneService { private final ColorsService colorsService; private final StorageService storageService; private final DossierStatusPersistenceService dossierStatusPersistenceService; + private final WatermarkService watermarkService; public DossierTemplateEntity cloneDossierTemplate(String dossierTemplateId, CloneDossierTemplateRequest cloneDossierTemplateRequest) { @@ -97,6 +99,9 @@ public class DossierTemplateCloneService { //set dossier status cloneDossierStates(dossierTemplate.getId(), clonedDossierTemplate.getId()); + // set the watermark configurations + cloneWatermarks(dossierTemplate.getId(), clonedDossierTemplate.getId()); + }, () -> { throw new NotFoundException(String.format(dossierTemplatePersistenceService.DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId)); }); @@ -225,4 +230,14 @@ public class DossierTemplateCloneService { } } + private void cloneWatermarks(String dossierTemplateId, String clonedDossierTemplateId) { + var watermarkList = watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId); + for (var watermark : watermarkList) { + var clonedWatermark = new Watermark(); + BeanUtils.copyProperties(watermark, clonedWatermark, "id", "dossierTemplateId"); + clonedWatermark.setDossierTemplateId(clonedDossierTemplateId); + watermarkService.createOrUpdateWatermark(clonedWatermark); + } + } + } 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 1b4c16e62..d48fe55a5 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 @@ -233,6 +233,20 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .build(); dossierStatusClient.createOrUpdateDossierStatus(dossierStatus); + Watermark watermark = new Watermark(); + watermark.setName("watermark name"); + watermark.setEnabled(true); + watermark.setText("Minions ipsum chasy para tu la bodaaa bananaaaa hana dul sae. Chasy hana dul sae pepete hana dul sae belloo! Tatata bala tu ti aamoo! Jeje."); + watermark.setFontSize(12); + watermark.setFontType("font"); + watermark.setHexColor("#dddddd"); + watermark.setOpacity(20); + watermark.setOrientation(WatermarkOrientation.DIAGONAL); + watermark.setDossierTemplateId(dossierTemplate.getId()); + watermark.setCreatedBy("user"); + + watermarkClient.createOrUpdateWatermark(watermark); + var allTemplates = dossierTemplateClient.getAllDossierTemplates(); assertThat(allTemplates.size()).isEqualTo(1); assertThat(allTemplates.get(0)).isEqualTo(dossierTemplate); @@ -268,6 +282,9 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(dossierStatusClient.getAllDossierStatuses(List.of(dossierTemplate.getId())) .get(0) .getDescription()).isEqualTo(dossierStatusClient.getAllDossierStatuses(List.of(clonedDT.getId())).get(0).getDescription()); + assertThat(watermarkClient.getWatermarksForDossierTemplateId(clonedDT.getId()).size()).isEqualTo(1); + assertThat(watermarkClient.getWatermarksForDossierTemplateId(dossierTemplate.getId()).get(0).getName()) + .isEqualTo(watermarkClient.getWatermarksForDossierTemplateId(clonedDT.getId()).get(0).getName()); } }