diff --git a/src/main/java/de/ozgcloud/admin/migration/M001_CreateEmptyPostfachIfMissing.java b/src/main/java/de/ozgcloud/admin/migration/M001_CreateEmptyPostfachIfMissing.java index c8c1829b1ab83fbf7af3284294ec8f980a498206..f65537fd1d4301e44ab6412ab4b1636b421a838c 100644 --- a/src/main/java/de/ozgcloud/admin/migration/M001_CreateEmptyPostfachIfMissing.java +++ b/src/main/java/de/ozgcloud/admin/migration/M001_CreateEmptyPostfachIfMissing.java @@ -3,53 +3,24 @@ package de.ozgcloud.admin.migration; import io.mongock.api.annotations.ChangeUnit; import io.mongock.api.annotations.Execution; import io.mongock.api.annotations.RollbackExecution; -import org.bson.Document; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; - +import org.springframework.data.mongodb.core.query.Update; @ChangeUnit(id = "2024-02-20 17:00:00 OZG-4948-OZG-5058", order = "M001", author = "lmonnerjahn", runAlways = true) public class M001_CreateEmptyPostfachIfMissing { // NOSONAR - private static final String SETTINGS_COLLECTION = "settings"; + static final String SETTINGS_COLLECTION = "settings"; static final String TYPE_NAME_KEY = "name"; static final String TYPE_NAME_POSTFACH_VALUE = "Postfach"; - public static final String SETTINGS_KEY = "settings"; - public static final String POSTFACH_ABSENDER_KEY = "absender"; - public static final String POSTFACH_SIGNATUR_KEY = "signatur"; - public static final String ABSENDER_NAME_KEY = "name"; - public static final String ABSENDER_ANSCHRIFT_KEY = "anschrift"; - public static final String ABSENDER_DIENST_KEY = "dienst"; - public static final String ABSENDER_MANDANT_KEY = "mandant"; - public static final String ABSENDER_GEMEINDESCHLUESSEL_KEY = "gemeindeschluessel"; - public static final String SIGNATUR_TEXT_KEY = "text"; @Execution public void doMigration(MongoTemplate template) { - var criteria = Criteria.where(TYPE_NAME_KEY).is(TYPE_NAME_POSTFACH_VALUE); - var query = new Query(criteria); - if(template.find(query, Document.class, SETTINGS_COLLECTION).isEmpty()) { - template.save(emptyPostfachSetting(), SETTINGS_COLLECTION); - } - } - - private Document emptyPostfachSetting(){ - var setting = new Document(); - var postfach = new Document(); - var absender = new Document(); - var signatur = new Document(); - signatur.put(SIGNATUR_TEXT_KEY, ""); - absender.put(ABSENDER_NAME_KEY, ""); - absender.put(ABSENDER_ANSCHRIFT_KEY, ""); - absender.put(ABSENDER_DIENST_KEY, ""); - absender.put(ABSENDER_MANDANT_KEY, ""); - absender.put(ABSENDER_GEMEINDESCHLUESSEL_KEY, ""); - postfach.put(POSTFACH_ABSENDER_KEY, absender); - postfach.put(POSTFACH_SIGNATUR_KEY, signatur); - setting.put(TYPE_NAME_KEY, TYPE_NAME_POSTFACH_VALUE); - setting.put(SETTINGS_KEY, postfach); - return setting; + var query = Query.query(Criteria.where(TYPE_NAME_KEY).is(TYPE_NAME_POSTFACH_VALUE)); + var update = new Update(); + update.setOnInsert(TYPE_NAME_KEY, TYPE_NAME_POSTFACH_VALUE); + template.upsert(query, update, SETTINGS_COLLECTION); } @RollbackExecution diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 68e8d507999373445e89a2460ecfd86e82e51ed3..84aed784275c3f9d3e279a55d007edb73a419598 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -54,7 +54,6 @@ mongock: migration-scan-package: - de.ozgcloud.admin.migration enabled: true - # try out if this works transactionEnabled: true spring: