/* * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den * Ministerpräsidenten des Landes Schleswig-Holstein * Staatskanzlei * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung * * Lizenziert unter der EUPL, Version 1.2 oder - sobald * diese von der Europäischen Kommission genehmigt wurden - * Folgeversionen der EUPL ("Lizenz"); * Sie dürfen dieses Werk ausschließlich gemäß * dieser Lizenz nutzen. * Eine Kopie der Lizenz finden Sie hier: * * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 * * Sofern nicht durch anwendbare Rechtsvorschriften * gefordert oder in schriftlicher Form vereinbart, wird * die unter der Lizenz verbreitete Software "so wie sie * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - * ausdrücklich oder stillschweigend - verbreitet. * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ package de.ozgcloud.admin.setting; import java.util.Map; import java.util.stream.Collectors; import org.springframework.stereotype.Service; import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings; import de.ozgcloud.admin.setting.postfach.PostfachSettingBody; import lombok.RequiredArgsConstructor; @Service @RequiredArgsConstructor class SettingService { private static final String POSTFACH_SETTING_ITEM_NAME = "Postfach"; private final OrganisationsEinheitSettingsRepository organisationsEinheitSettingsRepository; private final SettingRepository repository; private final SettingMapper mapper; public AlfaSettingDTO getAlfaSettingDTO() { var postfachData = getSettingWithPostfachFromDb(); Map<String, OrganisationsEinheitSettings> settings = getOrganisationsEinheitSettings(); return AlfaSettingDTO.builder() .signatur(postfachData.getSignatur()) .organisationsEinheitSettings(settings) .build(); } public VorgangManagerSettingDTO getVorgangManagerSettingDTO() { var postfachData = getSettingWithPostfachFromDb(); Map<String, OrganisationsEinheitSettings> settings = getOrganisationsEinheitSettings(); return VorgangManagerSettingDTO.builder() .absender(mapper.mapAbsenderToAbsenderVorgangManager(postfachData.getAbsender())) .signatur(postfachData.getSignatur()) .organisationsEinheitSettings(settings) .build(); } PostfachSettingBody getSettingWithPostfachFromDb() { return repository.findOneByName(POSTFACH_SETTING_ITEM_NAME) .map(Setting::getSettingBody) .map(PostfachSettingBody.class::cast) .orElse(PostfachSettingBody.builder().build()); } Map<String, OrganisationsEinheitSettings> getOrganisationsEinheitSettings() { return organisationsEinheitSettingsRepository.getSettings().collect(Collectors.toMap( OrganisationsEinheitWithSettings::organisationsEinheitId, OrganisationsEinheitWithSettings::settings)); } }