RED-9740: Added migration to add graphic type #623

Merged
dominique.eiflaender1 merged 1 commits from RED-9740-4.1 into release/2.465.x 2024-07-26 12:32:13 +02:00
2 changed files with 86 additions and 0 deletions

View File

@ -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);
});
});
}
}

View File

@ -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);
});
}
}