From 739305f04297de5691451acb65bfc93c1eea5e5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Fri, 26 Jul 2024 12:16:31 +0200 Subject: [PATCH] RED-9740: Added migration to add graphic type --- .../AddGraphicDictionaryType19.java | 75 +++++++++++++++++++ .../DictionaryPersistenceService.java | 11 +++ 2 files changed, 86 insertions(+) create mode 100644 persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/AddGraphicDictionaryType19.java diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/AddGraphicDictionaryType19.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/AddGraphicDictionaryType19.java new file mode 100644 index 000000000..a6ad95614 --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/AddGraphicDictionaryType19.java @@ -0,0 +1,75 @@ +package com.iqser.red.service.persistence.management.v1.processor.migration.migrations; + +import static com.iqser.red.service.persistence.management.v1.processor.utils.TypeIdUtils.toTypeId; + +import org.springframework.beans.factory.annotation.Autowired; +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.service.persistence.DictionaryPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository; + +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Setter +@Service +public class AddGraphicDictionaryType19 extends Migration { + + @Autowired + private DossierTemplatePersistenceService dossierTemplatePersistenceService; + + @Autowired + private DictionaryPersistenceService dictionaryPersistenceService; + + @Autowired + private TypeRepository typeRepository; + + private static final String NAME = "Migration to add experimental Graphic Type"; + private static final long VERSION = 19; + + + public AddGraphicDictionaryType19() { + + super(NAME, VERSION); + } + + + @Override + protected void migrate() { + + dossierTemplatePersistenceService.getAllDossierTemplates() + .forEach(dossierTemplateEntity -> { + + String typeId = toTypeId("graphic", dossierTemplateEntity.getId(), null); + + typeRepository.findById(typeId).ifPresentOrElse(type -> { + dictionaryPersistenceService.setExperimentalTrue(typeId); + log.info("Updated Graphic Type {} to experimental", typeId); + }, () -> { + dictionaryPersistenceService.addType("graphic", + dossierTemplateEntity.getId(), + "#ffbdfd", + "#8df06c", + "#c498fa", + 998, + true, + true, + false, + "Empty dictionary used to configure graphic colors.", + false, + "Graphic", + null, + true, + false, + false, + false, + true); + log.info("Added Graphic Type {}", typeId); + }); + }); + } + +} diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java index f7fc40dfd..f970eeb56 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java @@ -317,4 +317,15 @@ public class DictionaryPersistenceService { typeRepository.updateRankForType(typeId, newRank); } + + @Transactional + public void setExperimentalTrue(String typeId){ + typeRepository.findById(typeId).ifPresent(type -> { + type.setVersion(type.getVersion() + 1); + type.setSystemManaged(true); + type.setExperimental(true); + typeRepository.saveAndFlush(type); + }); + } + } -- 2.47.2