diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e3822b358f647ddbe6db35957b929ea29326cc0d --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# Administration +Die Anwendung Administration der OZG-Cloud stellt ein Web-UI zur Verwaltung der globalen Einstellungen der OZG-Cloud zur Verfügung. Über dieses erfolgt die fachliche Administration der OZG-Cloud durch den Mandanten oder eine durch den Mandanten beauftragte Institution. + +## Architektur + +### Client + +Der Client ist mit Angular entwickelt und bindet sich per REST-API an das Backend. Der Client wird im mono-repo der OZG-Cloud Clients mit entwickelt und ist ebenfalls auf [code.schleswig-holstein.de](https://code.schleswig-holstein.de/ozg-cloud/app/frontend-clients/-/tree/main/alfa-client/apps/admin?ref_type=heads) zu finden. + +### Backend + +Das Backend (in diesem Repo zu finden) ist eine spring-boot basierte Java Anwendung. + +* spring data rest - das Rest Api für den Client wird per spring data rest aufgebaut. +* spring cloud server - zur Übertragung der Konfigurationen an die einzelnen Dienste der OZG-Cloud (im Kontext der OZG-Cloud 'Manager' genannt) wird eine Schnittstelle nach dem spring cloud server Standard bereit gestellt. + +Die Konfiguration wird in einer MongoDB gespeichert. + +## Entwicklung + +Um ein neue Konfiguration einzubauen, müssen folgende Klassen angelegt werden: + +* Datenklassen - Die Klassen mit den eigentlichen Konfigurationsparameter. Die Klasse wird nach der Fachlichkeit benannt. Diese wird mit @TypeAlias annotiert. +* Repository - MongoRepository mit @RepositoryRestResource annotation. Die findAll Methode muss überschrieben werden. +* Klasse als Datentransferobjekt (DTO) - Format für die Spring Config Server Schnittstelle für einen Manager. Bennenung daher: FachlichkeitManagerSettingDto.java +* Mapper - Mapped die Konfigurationsparamter in das Dto. +* DtoService - Stellt die Settings für einen MAnager bereit. Wird mit @DtoService annotiert. Dadurch ist es eine Spring-Bean und wird automatisch aufgerufen, wenn eine Konfiguration für den jeweiligen Manager geladen wird. Benennung: FachlichkeitManagerSettingDtoService \ No newline at end of file diff --git a/src/main/java/de/ozgcloud/admin/setting/SettingValidator.java b/src/main/java/de/ozgcloud/admin/setting/SettingValidator.java deleted file mode 100644 index 54ecb425791b213835169e3303fc74b2296abe4c..0000000000000000000000000000000000000000 --- a/src/main/java/de/ozgcloud/admin/setting/SettingValidator.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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 jakarta.validation.ConstraintViolationException; -import jakarta.validation.Validation; - -import org.springframework.stereotype.Component; -import org.springframework.validation.Errors; -import org.springframework.validation.Validator; - -@Component -class SettingValidator implements Validator { - - @Override - public boolean supports(Class<?> clazz) { - return Setting.class.equals(clazz); - } - - @Override - public void validate(Object target, Errors errors) { - var validator = Validation.buildDefaultValidatorFactory().getValidator(); - var constraintViolations = validator.validate(target); - if (!constraintViolations.isEmpty()) { - throw new ConstraintViolationException(constraintViolations); - } - } - -}