From 93a4a072c94b53560eb9e776ef289b1f6f8a3873 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Mon, 28 Oct 2024 15:52:27 +0100
Subject: [PATCH] OZG-6721: OZG-6914: First set of changes

---
 .../admin/setting/AlfaSettingDTO.java         |  9 +++++++-
 .../ozgcloud/admin/setting/SettingMapper.java |  2 ++
 .../admin/setting/SettingService.java         | 23 +++++++++++++++----
 .../setting/VorgangManagerSettingDTO.java     |  7 ++++++
 .../setting/AlfaSettingDTOTestFactory.java    | 11 ++++++++-
 .../VorgangManagerSettingDTOTestFactory.java  |  5 +++-
 6 files changed, 50 insertions(+), 7 deletions(-)

diff --git a/src/main/java/de/ozgcloud/admin/setting/AlfaSettingDTO.java b/src/main/java/de/ozgcloud/admin/setting/AlfaSettingDTO.java
index 0e6e6fed..1bb67126 100644
--- a/src/main/java/de/ozgcloud/admin/setting/AlfaSettingDTO.java
+++ b/src/main/java/de/ozgcloud/admin/setting/AlfaSettingDTO.java
@@ -1,14 +1,21 @@
 package de.ozgcloud.admin.setting;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-
+import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
+import java.util.HashMap;
+import java.util.Map;
 import lombok.Builder;
 import lombok.Getter;
 
 @Builder
 @Getter
 class AlfaSettingDTO implements ApplicationSettingDTO {
+
 	@JsonProperty("ozgcloud.postfach.signatur")
 	@Builder.Default
 	private String signatur = "";
+
+	@JsonProperty("ozgcloud.postfach.organisationsEinheitSettings")
+	@Builder.Default
+	private Map<String, OrganisationsEinheitSettings> organisationsEinheitSettingsMap = new HashMap<>();
 }
diff --git a/src/main/java/de/ozgcloud/admin/setting/SettingMapper.java b/src/main/java/de/ozgcloud/admin/setting/SettingMapper.java
index f0f1ba62..11c57f0c 100644
--- a/src/main/java/de/ozgcloud/admin/setting/SettingMapper.java
+++ b/src/main/java/de/ozgcloud/admin/setting/SettingMapper.java
@@ -11,9 +11,11 @@ import de.ozgcloud.admin.setting.postfach.PostfachSettingBody;
 @Mapper(unmappedTargetPolicy = ReportingPolicy.WARN)
 interface SettingMapper {
 
+	@Deprecated
 	AlfaSettingDTO.AlfaSettingDTOBuilder mapAlfaPostfach(@MappingTarget AlfaSettingDTO.AlfaSettingDTOBuilder builder,
 			PostfachSettingBody postfachData);
 
+	@Deprecated
 	VorgangManagerSettingDTO.VorgangManagerSettingDTOBuilder mapVorgangManagerPostfach(
 			@MappingTarget VorgangManagerSettingDTO.VorgangManagerSettingDTOBuilder builder, PostfachSettingBody postfachData);
 
diff --git a/src/main/java/de/ozgcloud/admin/setting/SettingService.java b/src/main/java/de/ozgcloud/admin/setting/SettingService.java
index 3c5ceb01..cdb43369 100644
--- a/src/main/java/de/ozgcloud/admin/setting/SettingService.java
+++ b/src/main/java/de/ozgcloud/admin/setting/SettingService.java
@@ -1,9 +1,11 @@
 package de.ozgcloud.admin.setting;
 
-import org.springframework.stereotype.Service;
-
+import de.ozgcloud.admin.common.organisationseinheit.OrganisationsEinheitSettingsService;
+import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
 import de.ozgcloud.admin.setting.postfach.PostfachSettingBody;
+import java.util.Map;
 import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
 
 @Service
 @RequiredArgsConstructor
@@ -13,14 +15,27 @@ class SettingService {
 	private final SettingRepository repository;
 	private final SettingMapper mapper;
 
+	private final OrganisationsEinheitSettingsService oeService;
+
 	public AlfaSettingDTO getAlfaSettingDTO() {
 		var postfachData = getSettingWithPostfachFromDb();
-		return mapper.mapAlfaPostfach(AlfaSettingDTO.builder(), postfachData).build();
+		Map<String, OrganisationsEinheitSettings> settings = oeService.getSettings();
+
+		return AlfaSettingDTO.builder()
+				.signatur(postfachData.getSignatur())
+				.organisationsEinheitSettingsMap(settings)
+				.build();
 	}
 
 	public VorgangManagerSettingDTO getVorgangManagerSettingDTO() {
 		var postfachData = getSettingWithPostfachFromDb();
-		return mapper.mapVorgangManagerPostfach(VorgangManagerSettingDTO.builder(), postfachData).build();
+		Map<String, OrganisationsEinheitSettings> settings = oeService.getSettings();
+
+		return VorgangManagerSettingDTO.builder()
+				.absender(mapper.mapAbsenderToAbsenderVorgangManager(postfachData.getAbsender()))
+				.signatur(postfachData.getSignatur())
+				.organisationsEinheitSettingsMap(settings)
+				.build();
 	}
 
 	PostfachSettingBody getSettingWithPostfachFromDb() {
diff --git a/src/main/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTO.java b/src/main/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTO.java
index 0a36b769..5ab2519d 100644
--- a/src/main/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTO.java
+++ b/src/main/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTO.java
@@ -3,7 +3,10 @@ package de.ozgcloud.admin.setting;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonUnwrapped;
 
+import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
 import de.ozgcloud.admin.setting.postfach.AbsenderVorgangManager;
+import java.util.HashMap;
+import java.util.Map;
 import lombok.Builder;
 import lombok.Getter;
 
@@ -17,4 +20,8 @@ class VorgangManagerSettingDTO implements ApplicationSettingDTO {
 	@JsonProperty("ozgcloud.postfach.signatur")
 	@Builder.Default
 	private String signatur = "";
+
+	@JsonProperty("ozgcloud.postfach.organisationsEinheitSettings")
+	@Builder.Default
+	private Map<String, OrganisationsEinheitSettings> organisationsEinheitSettingsMap = new HashMap<>();
 }
diff --git a/src/test/java/de/ozgcloud/admin/setting/AlfaSettingDTOTestFactory.java b/src/test/java/de/ozgcloud/admin/setting/AlfaSettingDTOTestFactory.java
index b00c52b6..280bdd52 100644
--- a/src/test/java/de/ozgcloud/admin/setting/AlfaSettingDTOTestFactory.java
+++ b/src/test/java/de/ozgcloud/admin/setting/AlfaSettingDTOTestFactory.java
@@ -1,13 +1,22 @@
 package de.ozgcloud.admin.setting;
 
+import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
+import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory;
+import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory;
 import de.ozgcloud.admin.setting.postfach.PostfachSettingBodyTestFactory;
+import java.util.Map;
 
 public class AlfaSettingDTOTestFactory {
 	public static AlfaSettingDTO create() {
 		return createBuilder().build();
 	}
 
+	public static Map<String, OrganisationsEinheitSettings> organisationsEinheitSettingsMap = Map.of(OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID,
+			OrganisationsEinheitSettingsTestFactory.create());
+
 	public static AlfaSettingDTO.AlfaSettingDTOBuilder createBuilder() {
-		return AlfaSettingDTO.builder().signatur(PostfachSettingBodyTestFactory.SIGNATUR);
+		return AlfaSettingDTO.builder()
+				.signatur(PostfachSettingBodyTestFactory.SIGNATUR)
+				.organisationsEinheitSettingsMap(organisationsEinheitSettingsMap);
 	}
 }
diff --git a/src/test/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTOTestFactory.java b/src/test/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTOTestFactory.java
index 2e4d90d1..14a44a1d 100644
--- a/src/test/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTOTestFactory.java
+++ b/src/test/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTOTestFactory.java
@@ -1,5 +1,7 @@
 package de.ozgcloud.admin.setting;
 
+import static de.ozgcloud.admin.setting.AlfaSettingDTOTestFactory.organisationsEinheitSettingsMap;
+
 import de.ozgcloud.admin.setting.postfach.AbsenderVorgangManager;
 import de.ozgcloud.admin.setting.postfach.AbsenderVorgangManagerTestFactory;
 import de.ozgcloud.admin.setting.postfach.PostfachSettingBodyTestFactory;
@@ -15,6 +17,7 @@ public class VorgangManagerSettingDTOTestFactory {
 	public static VorgangManagerSettingDTO.VorgangManagerSettingDTOBuilder createBuilder() {
 		return VorgangManagerSettingDTO.builder()
 				.absender(ABSENDER)
-				.signatur(SIGNATUR);
+				.signatur(SIGNATUR)
+				.organisationsEinheitSettingsMap(organisationsEinheitSettingsMap);
 	}
 }
-- 
GitLab