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 new file mode 100644 index 000000000..30ac3a422 --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java @@ -0,0 +1,237 @@ +package com.iqser.red.service.persistence.management.v1.processor.service; + +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.io.IOException; +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +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.TypeEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; +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.service.persistence.DictionaryPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.LegalBasisMappingPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateStatus; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis; +import com.iqser.red.storage.commons.service.StorageService; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Service +@RequiredArgsConstructor +public class DossierTemplateCloneService { + + private final DossierTemplateRepository dossierTemplateRepository; + private final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService; + private final RulesPersistenceService rulesPersistenceService; + private final DossierTemplatePersistenceService dossierTemplatePersistenceService; + private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService; + private final DictionaryPersistenceService dictionaryPersistenceService; + private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService; + private final ReportTemplatePersistenceService reportTemplatePersistenceService; + private final WatermarkService watermarkService; + private final ColorsService colorsService; + private final StorageService storageService; + + + public DossierTemplateEntity cloneDossierTemplate(String dossierTemplateId, String nameOfClonedDossierTemplate, String cloningUserId) { + + dossierTemplatePersistenceService.validateDossierTemplateNameIsUnique(nameOfClonedDossierTemplate); + + DossierTemplateEntity clonedDossierTemplate = new DossierTemplateEntity(); + + dossierTemplateRepository.findById(dossierTemplateId).ifPresentOrElse((dossierTemplate) -> { + + OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS); + clonedDossierTemplate.setId(UUID.randomUUID().toString()); + clonedDossierTemplate.setName(nameOfClonedDossierTemplate); + clonedDossierTemplate.setDescription(dossierTemplate.getDescription()); + clonedDossierTemplate.setDateAdded(now); + clonedDossierTemplate.setDateModified(now); + clonedDossierTemplate.setCreatedBy(cloningUserId); + clonedDossierTemplate.setModifiedBy(cloningUserId); + clonedDossierTemplate.setValidFrom(dossierTemplate.getValidFrom()); + clonedDossierTemplate.setValidTo(dossierTemplate.getValidTo()); + clonedDossierTemplate.setSoftDeleteTime(dossierTemplate.getSoftDeleteTime()); + clonedDossierTemplate.setDownloadFileTypes(dossierTemplate.getDownloadFileTypes()); + + //set rules + cloneRules(dossierTemplate.getId(), clonedDossierTemplate.getId()); + //set legal basis + cloneLegalBasisMapping(dossierTemplate.getId(), clonedDossierTemplate.getId()); + + clonedDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(dossierTemplatePersistenceService.computeDossierTemplateStatus(clonedDossierTemplate) + .name())); + dossierTemplateRepository.save(clonedDossierTemplate); + + //set dictionaries + clonedDossierTemplate.setDossierTypes(cloneDictionaries(dossierTemplate.getId(), clonedDossierTemplate.getId())); + + //set dossier attributes + cloneDossierAttributesConfig(dossierTemplate.getId(), clonedDossierTemplate.getId()); + + //set file attributes + cloneFileAttributesGeneralConfig(dossierTemplate.getId(), clonedDossierTemplate.getId()); + + clonedDossierTemplate.setFileAttributeConfigs(cloneFileAttributesConfig(dossierTemplate.getId(), clonedDossierTemplate.getId())); + + //set report templates + clonedDossierTemplate.setReportTemplates(cloneReportTemplates(dossierTemplate, clonedDossierTemplate.getId())); + + //set watermarks + cloneWatermark(dossierTemplate.getId(), clonedDossierTemplate.getId()); + + //set colors + cloneColors(dossierTemplate.getId(), clonedDossierTemplate.getId()); + + dossierTemplateRepository.save(clonedDossierTemplate); + + }, () -> { + throw new NotFoundException(String.format(dossierTemplatePersistenceService.DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId)); + }); + return clonedDossierTemplate; + } + + + private void cloneRules(String dossierTemplateId, String clonedDossierTemplateId) { + + rulesPersistenceService.setRules(rulesPersistenceService.getRules(dossierTemplateId).getValue(), clonedDossierTemplateId); + } + + + private void cloneLegalBasisMapping(String dossierTemplateId, String clonedDossierTemplateId) { + + legalBasisMappingPersistenceService.setLegalBasisMapping(clonedDossierTemplateId, convert(legalBasisMappingPersistenceService.getLegalBasisMapping(dossierTemplateId), LegalBasis.class)); + } + + + private List cloneDictionaries(String dossierTemplateId, String clonedDossierTemplateId) { + + List clonedTypes = new ArrayList<>(); + var types = dictionaryPersistenceService.getAllTypesForDossierTemplate(dossierTemplateId); + for (TypeEntity t : types) { + TypeEntity te = dictionaryPersistenceService.addType(t.getType(), clonedDossierTemplateId, t.getHexColor(), t.getRecommendationHexColor(), t.getRank(), t.isHint(), t.isCaseInsensitive(), t.isRecommendation(), t.getDescription(), t.isAddToDictionaryAction(), t.getLabel(), null); + te.setDossierTemplateId(clonedDossierTemplateId); + clonedTypes.add(te); + } + return clonedTypes; + } + + + private void cloneDossierAttributesConfig(String dossierTemplateId, String clonedDossierTemplateId) { + + List dacList = new ArrayList<>(); + var dossierAttributesConfig = dossierAttributeConfigPersistenceService.getDossierAttributes(dossierTemplateId); + dossierAttributesConfig.forEach(dossierAttributeConfigEntity -> { + var dac = DossierAttributeConfigEntity.builder() + .label(dossierAttributeConfigEntity.getLabel()) + .editable(dossierAttributeConfigEntity.isEditable()) + .placeholder(dossierAttributeConfigEntity.getPlaceholder()) + .type(dossierAttributeConfigEntity.getType()) + .build(); + dacList.add(dac); + }); + dossierAttributeConfigPersistenceService.setDossierAttributesConfig(clonedDossierTemplateId, dacList); + } + + + private void cloneFileAttributesGeneralConfig(String dossierTemplateId, String clonedDossierTemplateId) { + + var fileAttributesGeneralConfig = fileAttributeConfigPersistenceService.getFileAttributesGeneralConfiguration(dossierTemplateId); + var fagc = FileAttributesGeneralConfigurationEntity.builder() + .dossierTemplateId(clonedDossierTemplateId) + .delimiter(fileAttributesGeneralConfig.getDelimiter()) + .filenameMappingColumnHeaderName(fileAttributesGeneralConfig.getFilenameMappingColumnHeaderName()) + .build(); + fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(clonedDossierTemplateId, fagc); + } + + + private List cloneFileAttributesConfig(String dossierTemplateId, String clonedDossierTemplateId) { + + List facList = new ArrayList<>(); + var fileAttributesConfig = fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplateId); + fileAttributesConfig.forEach(fileAttributeConfigEntity -> { + var fac = FileAttributeConfigEntity.builder() + .csvColumnHeader(fileAttributeConfigEntity.getCsvColumnHeader()) + .label(fileAttributeConfigEntity.getLabel()) + .primaryAttribute(fileAttributeConfigEntity.isPrimaryAttribute()) + .editable(fileAttributeConfigEntity.isEditable()) + .filterable(fileAttributeConfigEntity.isFilterable()) + .displayedInFileList(fileAttributeConfigEntity.isDisplayedInFileList()) + .placeholder(fileAttributeConfigEntity.getPlaceholder()) + .type(fileAttributeConfigEntity.getType()) + .build(); + facList.add(fac); + }); + fileAttributeConfigPersistenceService.setFileAttributesConfig(clonedDossierTemplateId, facList); + + return fileAttributeConfigPersistenceService.getFileAttributes(clonedDossierTemplateId); + } + + + private List cloneReportTemplates(DossierTemplateEntity dossierTemplate, String clonedDossierTemplateId) { + + var reportTemplates = dossierTemplate.getReportTemplates(); + for (ReportTemplateEntity rte : reportTemplates) { + var storedReportTemplate = storageService.getObject(rte.getStorageId()); + String storageId = clonedDossierTemplateId + "/" + rte.getFileName(); + String templateId = UUID.randomUUID().toString(); + try { + storageService.storeObject(storageId, storedReportTemplate.getInputStream()); + } catch (IOException e) { + throw new ConflictException("Could not clone report templates of dossier template."); + } + reportTemplatePersistenceService.insert(clonedDossierTemplateId, templateId, storageId, rte.getFileName(), rte.isActiveByDefault(), rte.isMultiFileReport()); + } + return reportTemplatePersistenceService.findByDossierTemplateId(clonedDossierTemplateId); + } + + + private void cloneWatermark(String dossierTemplateId, String clonedDossierTemplateId) { + + var watermark = watermarkService.getWatermark(dossierTemplateId); + WatermarkEntity we = WatermarkEntity.builder() + .dossierTemplateId(clonedDossierTemplateId) + .text(watermark.getText()) + .hexColor(watermark.getHexColor()) + .opacity(watermark.getOpacity()) + .fontType(watermark.getFontType()) + .fontSize(watermark.getFontSize()) + .orientation(watermark.getOrientation()) + .build(); + watermarkService.saveWatermark(clonedDossierTemplateId, we); + } + + + private void cloneColors(String dossierTemplateId, String clonedDossierTemplateId) { + + var colors = colorsService.getColors(dossierTemplateId); + var clonedColors = new ColorsEntity(); + BeanUtils.copyProperties(colors, clonedColors); + clonedColors.setDossierTemplateId(clonedDossierTemplateId); + colorsService.saveColors(clonedColors); + } + +} diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java index cd58c9e27..615755a0d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java @@ -1,11 +1,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; - -import java.io.IOException; import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; -import java.util.ArrayList; import java.util.List; import java.util.Optional; import java.util.UUID; @@ -15,25 +11,13 @@ import javax.transaction.Transactional; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; -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.TypeEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; 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.NotFoundException; -import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService; -import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateStatus; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis; -import com.iqser.red.service.persistence.service.v1.api.resources.ReportTemplateResource; -import com.iqser.red.storage.commons.service.StorageService; import lombok.RequiredArgsConstructor; @@ -46,13 +30,6 @@ public class DossierTemplatePersistenceService { private final DossierTemplateRepository dossierTemplateRepository; private final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService; private final RulesPersistenceService rulesPersistenceService; - private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService; - private final DictionaryPersistenceService dictionaryPersistenceService; - private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService; - private final ReportTemplatePersistenceService reportTemplatePersistenceService; - private final WatermarkService watermarkService; - private final ColorsService colorsService; - private final StorageService storageService; @Transactional @@ -93,7 +70,7 @@ public class DossierTemplatePersistenceService { } - private DossierTemplateStatus computeDossierTemplateStatus(DossierTemplateEntity dossierTemplate) { + public DossierTemplateStatus computeDossierTemplateStatus(DossierTemplateEntity dossierTemplate) { var legalBasis = legalBasisMappingPersistenceService.getLegalBasisMapping(dossierTemplate.getId()); if (legalBasis == null || legalBasis.isEmpty()) { @@ -164,128 +141,4 @@ public class DossierTemplatePersistenceService { } - public DossierTemplateEntity cloneDossierTemplate(String dossierTemplateId, String nameOfClonedDossierTemplate, String cloningUserId) { - - validateDossierTemplateNameIsUnique(nameOfClonedDossierTemplate); - - DossierTemplateEntity clonedDossierTemplate = new DossierTemplateEntity(); - - dossierTemplateRepository.findById(dossierTemplateId).ifPresentOrElse((dossierTemplate) -> { - - OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS); - clonedDossierTemplate.setId(UUID.randomUUID().toString()); - clonedDossierTemplate.setName(nameOfClonedDossierTemplate); - clonedDossierTemplate.setDescription(dossierTemplate.getDescription()); - clonedDossierTemplate.setDateAdded(now); - clonedDossierTemplate.setDateModified(now); - clonedDossierTemplate.setCreatedBy(cloningUserId); - clonedDossierTemplate.setModifiedBy(cloningUserId); - clonedDossierTemplate.setValidFrom(dossierTemplate.getValidFrom()); - clonedDossierTemplate.setValidTo(dossierTemplate.getValidTo()); - clonedDossierTemplate.setSoftDeleteTime(dossierTemplate.getSoftDeleteTime()); - clonedDossierTemplate.setDownloadFileTypes(dossierTemplate.getDownloadFileTypes()); - - //set rules - rulesPersistenceService.setRules(rulesPersistenceService.getRules(dossierTemplate.getId()).getValue(), clonedDossierTemplate.getId()); - //set legal basis - legalBasisMappingPersistenceService.setLegalBasisMapping(clonedDossierTemplate.getId(), convert(legalBasisMappingPersistenceService.getLegalBasisMapping(dossierTemplate.getId()), LegalBasis.class)); - - clonedDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(computeDossierTemplateStatus(clonedDossierTemplate).name())); - - dossierTemplateRepository.save(clonedDossierTemplate); - - //set dictionaries - List clonedTypes = new ArrayList<>(); - var types = dictionaryPersistenceService.getAllTypesForDossierTemplate(dossierTemplate.getId()); - for (TypeEntity t : types) { - TypeEntity te = dictionaryPersistenceService.addType(t.getType(), clonedDossierTemplate.getId(), t.getHexColor(), t.getRecommendationHexColor(), t.getRank(), t.isHint(), t.isCaseInsensitive(), t.isRecommendation(), t.getDescription(), t.isAddToDictionaryAction(), t.getLabel(), null); - te.setDossierTemplateId(clonedDossierTemplate.getId()); - clonedTypes.add(te); - } - clonedDossierTemplate.setDossierTypes(clonedTypes); - - //set dossier attributes - var dossierAttributesConfig = dossierAttributeConfigPersistenceService.getDossierAttributes(dossierTemplate.getId()); - List dacList = new ArrayList<>(); - dossierAttributesConfig.forEach(dossierAttributeConfigEntity -> { - var dac = DossierAttributeConfigEntity.builder() - .label(dossierAttributeConfigEntity.getLabel()) - .editable(dossierAttributeConfigEntity.isEditable()) - .placeholder(dossierAttributeConfigEntity.getPlaceholder()) - .type(dossierAttributeConfigEntity.getType()) - .build(); - dacList.add(dac); - }); - dossierAttributeConfigPersistenceService.setDossierAttributesConfig(clonedDossierTemplate.getId(), dacList); - - //set file attributes - var fileAttributesGeneralConfig = fileAttributeConfigPersistenceService.getFileAttributesGeneralConfiguration(dossierTemplate.getId()); - var fagc = FileAttributesGeneralConfigurationEntity.builder() - .dossierTemplateId(clonedDossierTemplate.getId()) - .delimiter(fileAttributesGeneralConfig.getDelimiter()) - .filenameMappingColumnHeaderName(fileAttributesGeneralConfig.getFilenameMappingColumnHeaderName()) - .build(); - fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(clonedDossierTemplate.getId(), fagc); - - var fileAttributesConfig = fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplate.getId()); - List facList = new ArrayList<>(); - fileAttributesConfig.forEach(fileAttributeConfigEntity -> { - var fac = FileAttributeConfigEntity.builder() - .csvColumnHeader(fileAttributeConfigEntity.getCsvColumnHeader()) - .label(fileAttributeConfigEntity.getLabel()) - .primaryAttribute(fileAttributeConfigEntity.isPrimaryAttribute()) - .editable(fileAttributeConfigEntity.isEditable()) - .filterable(fileAttributeConfigEntity.isFilterable()) - .displayedInFileList(fileAttributeConfigEntity.isDisplayedInFileList()) - .placeholder(fileAttributeConfigEntity.getPlaceholder()) - .type(fileAttributeConfigEntity.getType()) - .build(); - facList.add(fac); - }); - fileAttributeConfigPersistenceService.setFileAttributesConfig(clonedDossierTemplate.getId(), facList); - clonedDossierTemplate.setFileAttributeConfigs(fileAttributeConfigPersistenceService.getFileAttributes(clonedDossierTemplate.getId())); - - //set report templates - var reportTemplates = dossierTemplate.getReportTemplates(); - for (ReportTemplateEntity rte : reportTemplates) { - var storedReportTemplate = storageService.getObject(rte.getStorageId()); - String storageId = clonedDossierTemplate.getId() + "/" + rte.getFileName(); - String templateId = UUID.randomUUID().toString(); - try { - storageService.storeObject(storageId, storedReportTemplate.getInputStream()); - } catch (IOException e) { - throw new ConflictException("Could not clone dossier template."); - } - reportTemplatePersistenceService.insert(clonedDossierTemplate.getId(), templateId, storageId, rte.getFileName(), rte.isActiveByDefault(), rte.isMultiFileReport()); - } - clonedDossierTemplate.setReportTemplates(reportTemplatePersistenceService.findByDossierTemplateId(clonedDossierTemplate.getId())); - - //set watermarks - var watermark = watermarkService.getWatermark(dossierTemplate.getId()); - WatermarkEntity we = WatermarkEntity.builder() - .dossierTemplateId(clonedDossierTemplate.getId()) - .text(watermark.getText()) - .hexColor(watermark.getHexColor()) - .opacity(watermark.getOpacity()) - .fontType(watermark.getFontType()) - .fontSize(watermark.getFontSize()) - .orientation(watermark.getOrientation()) - .build(); - watermarkService.saveWatermark(clonedDossierTemplate.getId(), we); - - //set colors - var colors = colorsService.getColors(dossierTemplate.getId()); - var clonedColors = new ColorsEntity(); - BeanUtils.copyProperties(colors, clonedColors); - clonedColors.setDossierTemplateId(clonedDossierTemplate.getId()); - colorsService.saveColors(clonedColors); - - dossierTemplateRepository.save(clonedDossierTemplate); - - }, () -> { - throw new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId)); - }); - return clonedDossierTemplate; - } - } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierTemplateController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierTemplateController.java index 64bdfb8da..a184b5e35 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierTemplateController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierTemplateController.java @@ -1,6 +1,7 @@ package com.iqser.red.service.peristence.v1.server.controller; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateCloneService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplate; @@ -22,6 +23,7 @@ import static com.iqser.red.service.persistence.management.v1.processor.utils.Ma public class DossierTemplateController implements DossierTemplateResource { private final DossierTemplatePersistenceService dossierTemplatePersistenceService; + private final DossierTemplateCloneService dossierTemplateCloneService; @Override public DossierTemplate createOrUpdateDossierTemplate(@RequestBody CreateOrUpdateDossierTemplateRequest dossierTemplate) { @@ -45,6 +47,6 @@ public class DossierTemplateController implements DossierTemplateResource { @Override public DossierTemplate cloneDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, String nameOfClonedDossierTemplate, String cloningUserId) { - return convert(dossierTemplatePersistenceService.cloneDossierTemplate(dossierTemplateId, nameOfClonedDossierTemplate, cloningUserId), DossierTemplate.class); + return convert(dossierTemplateCloneService.cloneDossierTemplate(dossierTemplateId, nameOfClonedDossierTemplate, cloningUserId), DossierTemplate.class); } }