diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000000000000000000000000000000000..e14b6a99e7209e7a792eb54731d0a73614ce9d7c --- /dev/null +++ b/.editorconfig @@ -0,0 +1,39 @@ +# +# Copyright (C) 2022 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. +# + +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = tab +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = false + +[*.yml] +indent_size = 2 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..dfef11fec1a6a560e16005d6dab3446ff596505d --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# SERVER +target/ +.classpath +.project +.settings + +# IDE +.project +.classpath +.settings/ +.idea +*.iws +*.iml +*.ipr + +# Client +goofy-client/.vscode/ +goofy-client/apps/coverage/ + +.attach** +.factorypath diff --git a/api-lib-core/pom.xml b/api-lib-core/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..cd3f0432cb5d1da8623e27574e79b46dbdb8f0f1 --- /dev/null +++ b/api-lib-core/pom.xml @@ -0,0 +1,33 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>de.ozgcloud.api-lib</groupId> + <artifactId>api-lib-parent</artifactId> + <version>0.1.0-SNAPSHOT</version> + </parent> + + <artifactId>api-lib-core</artifactId> + + <dependencies> + <!--ozg cloud project --> + <dependency> + <groupId>de.itvsh.kop.common</groupId> + <artifactId>kop-common-lib</artifactId> + </dependency> + + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </dependency> + + <!--dev-tools --> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <scope>compile</scope> + <optional>true</optional> + </dependency> + </dependencies> +</project> \ No newline at end of file diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/file/FileId.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/file/FileId.java new file mode 100644 index 0000000000000000000000000000000000000000..6cb26d1f78a73e31b633b73950801b21099ed248 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/file/FileId.java @@ -0,0 +1,14 @@ +package de.ozgcloud.apilib.file; + +import de.itvsh.kop.common.datatype.StringBasedValue; + +public class FileId extends StringBasedValue { + + FileId(String id) { + super(id); + } + + public FileId from(String id) { + return new FileId(id); + } +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/file/OzgCloudFile.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/file/OzgCloudFile.java new file mode 100644 index 0000000000000000000000000000000000000000..61f97f6897423cfa5a492ab407b058cb76ad9f19 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/file/OzgCloudFile.java @@ -0,0 +1,17 @@ +package de.ozgcloud.apilib.file; + +import lombok.Builder; +import lombok.Getter; +import lombok.ToString; + +@Builder +@Getter +@ToString +public class OzgCloudFile { + + private FileId id; + + private String name; + private String contentType; + private long size; +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/file/OzgCloudFileGroup.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/file/OzgCloudFileGroup.java new file mode 100644 index 0000000000000000000000000000000000000000..56847fb26dfc996491e34727aeb53de277044b1e --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/file/OzgCloudFileGroup.java @@ -0,0 +1,19 @@ +package de.ozgcloud.apilib.file; + +import java.util.List; + +import lombok.Builder; +import lombok.Getter; +import lombok.Singular; +import lombok.ToString; + +@Builder +@Getter +@ToString +public class OzgCloudFileGroup { + + private String name; + + @Singular + private List<OzgCloudFile> files; +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/user/UserId.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/user/UserId.java new file mode 100644 index 0000000000000000000000000000000000000000..72013e49dbfbc8a3ac7d03d53e84da87c4611da2 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/user/UserId.java @@ -0,0 +1,10 @@ +package de.ozgcloud.apilib.user; + +import de.itvsh.kop.common.datatype.StringBasedValue; + +public class UserId extends StringBasedValue { + + UserId(String id) { + super(id); + } +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudAntragsteller.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudAntragsteller.java new file mode 100644 index 0000000000000000000000000000000000000000..2e0c91e0cb1ad31532617eb9974b290c14bc82cc --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudAntragsteller.java @@ -0,0 +1,26 @@ +package de.ozgcloud.apilib.vorgang; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class OzgCloudAntragsteller { + + private String anrede; + private String nachname; + private String vorname; + + private String geburtsdatum; + private String geburtsort; + private String geburtsname; + + private String strasse; + private String hausnummer; + private String plz; + private String ort; + + private String email; + private String telefon; + +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudEingang.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudEingang.java new file mode 100644 index 0000000000000000000000000000000000000000..44a7ef648bcca610b308301db58dbe9afd9b82ad --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudEingang.java @@ -0,0 +1,26 @@ +package de.ozgcloud.apilib.vorgang; + +import java.util.List; + +import de.ozgcloud.apilib.file.OzgCloudFile; +import de.ozgcloud.apilib.file.OzgCloudFileGroup; +import lombok.Builder; +import lombok.Getter; +import lombok.ToString; + +@Builder +@Getter +@ToString(onlyExplicitlyIncluded = true) +public class OzgCloudEingang { + + @ToString.Include + private OzgCloudEingangHeader header; + private OzgCloudAntragsteller antragsteller; + @ToString.Include + private OzgCloudZustaendigeStelle zustaendigeStelle; + + private List<OzgCloudFormDataEntry> formDataEntrys; + + private List<OzgCloudFileGroup> attachments; + private List<OzgCloudFile> representations; +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudEingangHeader.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudEingangHeader.java new file mode 100644 index 0000000000000000000000000000000000000000..db38759bf5f2521ac972828c7baa5fb6f7b42bf1 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudEingangHeader.java @@ -0,0 +1,24 @@ +package de.ozgcloud.apilib.vorgang; + +import java.time.ZonedDateTime; + +import lombok.Builder; +import lombok.Getter; +import lombok.ToString; + +@Getter +@Builder +@ToString +public class OzgCloudEingangHeader { + + private String requestId; + + private ZonedDateTime createdAt; + private String formId; + private String formName; + private String formEngineName; + + private String sender; + @ToString.Exclude + private OzgCloudServiceKonto serviceKonto; +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudFormDataEntry.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudFormDataEntry.java new file mode 100644 index 0000000000000000000000000000000000000000..bece3c48b29f0561e01c3dea3067930ce29f72f4 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudFormDataEntry.java @@ -0,0 +1,15 @@ +package de.ozgcloud.apilib.vorgang; + +public interface OzgCloudFormDataEntry { + + String getName(); + String getLabel(); + + default boolean isSubForm() { + return false; + } + + default boolean isFormEntry() { + return false; + } +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudFormField.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudFormField.java new file mode 100644 index 0000000000000000000000000000000000000000..4ea42f1e446d803a187cde561984541d3cb53fad --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudFormField.java @@ -0,0 +1,19 @@ +package de.ozgcloud.apilib.vorgang; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class OzgCloudFormField implements OzgCloudFormDataEntry { + + private String name; + private String label; + + private Object value; + + @Override + public boolean isFormEntry() { + return true; + } +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddress.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddress.java new file mode 100644 index 0000000000000000000000000000000000000000..caf386b63ef83c01c5aac3e80d66075809fc5bf0 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddress.java @@ -0,0 +1,15 @@ +package de.ozgcloud.apilib.vorgang; + +import java.util.Collection; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class OzgCloudPostfachAddress { + + private String version; + + private Collection<OzgCloudPostfachAddressIdentifier> identifier; +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddressIdentifier.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddressIdentifier.java new file mode 100644 index 0000000000000000000000000000000000000000..1a706e4cb3f2cbb89e5060a6003573a0fcecdd43 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudPostfachAddressIdentifier.java @@ -0,0 +1,12 @@ +package de.ozgcloud.apilib.vorgang; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class OzgCloudPostfachAddressIdentifier { + + private String name; + private Object value; +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKonto.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKonto.java new file mode 100644 index 0000000000000000000000000000000000000000..6dff9e12ddeb005dd2ecf629748bff96308523f0 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKonto.java @@ -0,0 +1,13 @@ +package de.ozgcloud.apilib.vorgang; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class OzgCloudServiceKonto { + + private OzgCloudServiceKontoType type; + + private OzgCloudPostfachAddress address; +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKontoType.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKontoType.java new file mode 100644 index 0000000000000000000000000000000000000000..f81c4bca58dafe737031c21db6da1460b35e6112 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudServiceKontoType.java @@ -0,0 +1,7 @@ +package de.ozgcloud.apilib.vorgang; + +import de.itvsh.kop.common.datatype.StringBasedValue; + +public class OzgCloudServiceKontoType extends StringBasedValue { + +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudSubForm.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudSubForm.java new file mode 100644 index 0000000000000000000000000000000000000000..7e3a86a8462e47ddf6f4862f892e43d18d934aae --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudSubForm.java @@ -0,0 +1,17 @@ +package de.ozgcloud.apilib.vorgang; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class OzgCloudSubForm implements OzgCloudFormDataEntry { + + private String name; + private String label; + + @Override + public boolean isSubForm() { + return true; + } +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgang.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgang.java new file mode 100644 index 0000000000000000000000000000000000000000..3007b445fa4963203baa26a909a4aa40d8b933a7 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgang.java @@ -0,0 +1,21 @@ +package de.ozgcloud.apilib.vorgang; + +import java.util.List; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class OzgCloudVorgang { + + private VorgangId id; + private long version; + + private String vorgangName; + private String vorgangNummer; + + private OzgCloudVorgangHeader header; + + private List<OzgCloudEingang> eingangs; +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangHeader.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangHeader.java new file mode 100644 index 0000000000000000000000000000000000000000..beda8ed89ee1020c56c09ed27bad2f30b377c156 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangHeader.java @@ -0,0 +1,20 @@ +package de.ozgcloud.apilib.vorgang; + +import java.time.ZonedDateTime; + +import de.ozgcloud.apilib.user.UserId; +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class OzgCloudVorgangHeader { + + private VorgangStatus status; + + private ZonedDateTime createdAt; + + private UserId assigendTo; + + private String aktenzeichen; +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangService.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangService.java new file mode 100644 index 0000000000000000000000000000000000000000..ca44d110e55fffb498dbc527291dbf6d9131efe8 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangService.java @@ -0,0 +1,8 @@ +package de.ozgcloud.apilib.vorgang; + +import org.springframework.stereotype.Service; + +@Service +public class OzgCloudVorgangService { + +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudZustaendigeStelle.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudZustaendigeStelle.java new file mode 100644 index 0000000000000000000000000000000000000000..35d8014155cdc66e11ee0d26cf8143906b74d515 --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudZustaendigeStelle.java @@ -0,0 +1,5 @@ +package de.ozgcloud.apilib.vorgang; + +public class OzgCloudZustaendigeStelle { + +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/VorgangId.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/VorgangId.java new file mode 100644 index 0000000000000000000000000000000000000000..2ab37da389cae57c2023c88d1b21a9b72957d1ad --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/VorgangId.java @@ -0,0 +1,14 @@ +package de.ozgcloud.apilib.vorgang; + +import de.itvsh.kop.common.datatype.StringBasedValue; + +public class VorgangId extends StringBasedValue { + + VorgangId(String vorgangId) { + super(vorgangId); + } + + public static VorgangId from(String id) { + return new VorgangId(id); + } +} diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/VorgangStatus.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/VorgangStatus.java new file mode 100644 index 0000000000000000000000000000000000000000..fb116d8d539c7fc6345ea6568fcb19db3fd7242d --- /dev/null +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/VorgangStatus.java @@ -0,0 +1,10 @@ +package de.ozgcloud.apilib.vorgang; + +import de.itvsh.kop.common.datatype.StringBasedValue; + +public class VorgangStatus extends StringBasedValue { + + VorgangStatus(String status) { + super(status); + } +} diff --git a/lombok.config b/lombok.config new file mode 100644 index 0000000000000000000000000000000000000000..d07dd9b0e2b0281fbf514a968b9451cb6af62f93 --- /dev/null +++ b/lombok.config @@ -0,0 +1,30 @@ +# +# Copyright (C) 2022 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. +# + +lombok.log.fieldName=LOG +lombok.log.slf4j.flagUsage = ERROR +lombok.log.log4j.flagUsage = ERROR +lombok.data.flagUsage = ERROR +lombok.nonNull.exceptionType = IllegalArgumentException +lombok.addLombokGeneratedAnnotation = true \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..f31c79260d2083e718a0afde22b8aae0a3ee38ae --- /dev/null +++ b/pom.xml @@ -0,0 +1,24 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>de.itvsh.kop.common</groupId> + <artifactId>kop-common-dependencies</artifactId> + <version>2.3.0-SNAPSHOT</version> + <relativePath /> <!-- lookup parent from repository --> + </parent> + + <groupId>de.ozgcloud.api-lib</groupId> + <artifactId>api-lib-parent</artifactId> + <version>0.1.0-SNAPSHOT</version> + <description>Library project to use the OZG-Cloud API</description> + + <packaging>pom</packaging> + <modules> + <module>api-lib-core</module> + </modules> + +</project> \ No newline at end of file