Skip to content
Snippets Groups Projects
Commit 97483f51 authored by OZGCloud's avatar OZGCloud
Browse files

start core implementation with base datastructore for vorgang

parent 788c5a30
No related branches found
No related tags found
No related merge requests found
Showing
with 376 additions and 0 deletions
#
# 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
# SERVER
target/
.classpath
.project
.settings
# IDE
.project
.classpath
.settings/
.idea
*.iws
*.iml
*.ipr
# Client
goofy-client/.vscode/
goofy-client/apps/coverage/
.attach**
.factorypath
<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
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);
}
}
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;
}
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;
}
package de.ozgcloud.apilib.user;
import de.itvsh.kop.common.datatype.StringBasedValue;
public class UserId extends StringBasedValue {
UserId(String id) {
super(id);
}
}
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;
}
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;
}
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;
}
package de.ozgcloud.apilib.vorgang;
public interface OzgCloudFormDataEntry {
String getName();
String getLabel();
default boolean isSubForm() {
return false;
}
default boolean isFormEntry() {
return false;
}
}
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;
}
}
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;
}
package de.ozgcloud.apilib.vorgang;
import lombok.Builder;
import lombok.Getter;
@Builder
@Getter
public class OzgCloudPostfachAddressIdentifier {
private String name;
private Object value;
}
package de.ozgcloud.apilib.vorgang;
import lombok.Builder;
import lombok.Getter;
@Builder
@Getter
public class OzgCloudServiceKonto {
private OzgCloudServiceKontoType type;
private OzgCloudPostfachAddress address;
}
package de.ozgcloud.apilib.vorgang;
import de.itvsh.kop.common.datatype.StringBasedValue;
public class OzgCloudServiceKontoType extends StringBasedValue {
}
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;
}
}
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;
}
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;
}
package de.ozgcloud.apilib.vorgang;
import org.springframework.stereotype.Service;
@Service
public class OzgCloudVorgangService {
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment