From a416f3f6d453a257b8f7bae69e7a6bb1188e0c6b Mon Sep 17 00:00:00 2001
From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de>
Date: Mon, 26 Feb 2024 11:22:57 +0100
Subject: [PATCH] OZG-5058 feedback migration

---
 .../M001_CreateEmptyPostfachIfMissing.java    | 41 +++----------------
 src/main/resources/application.yaml           |  1 -
 2 files changed, 6 insertions(+), 36 deletions(-)

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 c8c1829b..f65537fd 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 68e8d507..84aed784 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:
-- 
GitLab