Skip to content
Snippets Groups Projects
Commit bb58f435 authored by Lukas Malte Monnerjahn's avatar Lukas Malte Monnerjahn
Browse files

OZG-5058 create postfach migration

parent 2496730b
No related branches found
No related tags found
No related merge requests found
......@@ -3,19 +3,53 @@ 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;
@ChangeUnit(id = "2024-02-20 17:00:00 OZG-4948-OZG-5058", order = "M001", author = "lmonnerjahn", runAlways = true)
public class M001_CreateEmptyPostfachIfMissing {
public class M001_CreateEmptyPostfachIfMissing { // NOSONAR
private static final String SETTINGS_COLLECTION = "settings";
static final String NAME_KEY = "name";
static final String POSTFACH_NAME = "Postfach";
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) {
// todo: check if settings collection contains a "postfach" object
// add a postfach object if it is missing
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;
}
@RollbackExecution
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment