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

OZG-4428 parse form data items

parent f600a686
No related branches found
No related tags found
No related merge requests found
Showing
with 131 additions and 17 deletions
package de.ozgcloud.eingang.enterprise.entry;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
......@@ -12,6 +14,7 @@ import lombok.extern.jackson.Jacksonized;
public class EntryData {
private ControlData control;
private Map<String, EntryFormDataItem> formData;
@Builder
@Getter
......@@ -32,4 +35,11 @@ public class EntryData {
private String address;
}
}
@Builder
@Getter
@Jacksonized
public static class EntryFormData {
}
}
package de.ozgcloud.eingang.enterprise.entry;
import java.time.LocalDate;
import lombok.Builder;
import lombok.Getter;
import lombok.ToString;
import lombok.extern.jackson.Jacksonized;
@Builder
@Getter
@Jacksonized
@ToString(onlyExplicitlyIncluded = true)
public class EntryFormDataField implements EntryFormDataItem {
private String name;
@ToString.Include
private String label;
private String stringValue;
private Boolean booleanValue;
private Number numberValue;
private LocalDate dateValue;
@Override
public boolean isFormField() {
return true;
}
}
package de.ozgcloud.eingang.enterprise.entry;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonSubTypes.Type;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeInfo.Id;
@JsonTypeInfo(use = Id.DEDUCTION)
@JsonSubTypes({ @Type(EntryFormDataField.class), @Type(EntryFormDataSubForm.class) })
public interface EntryFormDataItem {
String getName();
String getLabel();
default boolean isSubForm() {
return false;
}
default boolean isFormField() {
return false;
}
}
package de.ozgcloud.eingang.enterprise.entry;
import java.util.Map;
import lombok.Builder;
import lombok.Getter;
import lombok.Singular;
import lombok.ToString;
import lombok.extern.jackson.Jacksonized;
@Builder
@Getter
@Jacksonized
@ToString(onlyExplicitlyIncluded = true)
public class EntryFormDataSubForm implements EntryFormDataItem {
private String name;
@ToString.Include
private String label;
@Singular
private Map<String, EntryFormDataItem> formItems;
@Override
public boolean isSubForm() {
return true;
}
}
......@@ -8,6 +8,7 @@ public class EntryDataTestFactory {
public static EntryData.EntryDataBuilder createBuilder() {
return EntryData.builder()
.control(ControlDataTestFactory.create());
.control(ControlDataTestFactory.create())
.formData(EntryFormDataTestFactory.create());
}
}
package de.ozgcloud.eingang.enterprise.entry;
import java.util.Map;
public class EntryFormDataTestFactory {
public static Map<String, EntryFormDataItem> create() {
return Map.of(
"antragsteller", EntryFormDataSubForm.builder().label("Antragstellende Person")
.formItem("person_oder_firma", EntryFormDataField.builder().label("Anrede").stringValue("Herr").build())
.formItem("vorname", EntryFormDataField.builder().label("Vorname").stringValue("Theo").build())
.formItem("nachname", EntryFormDataField.builder().label("Nachname").stringValue("Test").build())
.build());
}
public static EntryFormDataSubForm.EntryFormDataSubFormBuilder createBuilder() {
return EntryFormDataSubForm.builder()
.name("antragsteller")
.formItem("person_oder_firma", EntryFormDataField.builder().label("Anrede").stringValue("Herr").build());
}
}
......@@ -12,21 +12,23 @@
"formId": "KFAS_LIVE_KI_10_Haltverbot_befristet",
"name": "Anmeldung zur Einrichtung einer zeitlich befristeten Haltverbotszone gem. § 45 Abs. 1 Straßenverkehrsordnung (StVO)"
},
"antragsteller": {
"label": "Antragstellende Person",
"value": {
"person_oder_firma": {
"label": "Anrede",
"stringValue": "Herr"
},
"vorname": {
"label": "Vorname",
"stringValue": "Theo"
},
"nachname": {
"label": "Nachname",
"stringValue": "Test"
}
"formData": {
"antragsteller": {
"label": "Antragstellende Person",
"formItems": {
"person_oder_firma": {
"label": "Anrede",
"stringValue": "Herr"
},
"vorname": {
"label": "Vorname",
"stringValue": "Theo"
},
"nachname": {
"label": "Nachname",
"stringValue": "Test"
}
}
}
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment