diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangQuery.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangQuery.java index 2c405148d9e2e11e41fd75ee439f3ae7f3900013..dcaa5ac1fa3eac0320e31fb26c44182a7983a124 100644 --- a/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangQuery.java +++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/vorgang/OzgCloudVorgangQuery.java @@ -1,10 +1,61 @@ package de.ozgcloud.apilib.vorgang; +import java.util.Optional; + import lombok.Builder; import lombok.Getter; @Builder @Getter public class OzgCloudVorgangQuery { + @Builder.Default + public final Optional<String> organisationsEinheitId = Optional.empty(); + @Builder.Default + public final Optional<FormIdentification> form = Optional.empty(); + @Builder.Default + public final Optional<String> status = Optional.empty(); + @Builder.Default + public final Optional<String> aktenzeichen = Optional.empty(); + + @Builder.Default + public final Optional<Query> query = Optional.empty(); + + @Builder + @Getter + public static class Query { + public final LogicalOperator logicalOperator; + public final Expression expression; + public final OzgCloudVorgangQuery nestedQuery; + } + + public static record FormIdentification(String formId, String formEngineName) { + }; + + public enum LogicalOperator { + AND, OR + } + + @Builder + @Getter + public static class Expression { + public final String path; + public final ComparsionOperator operator; + public final Integer operandIntValue; + public final Boolean operandBoolValue; + public final String operandStringValue; + + public enum ComparsionOperator { + GREATER_THEN, // > + GREATER_THEN_OR_EQUAL_TO, // >= + LESS_THEN, // < + LESS_THEN_OR_EQUAL_TO, // <= + EQUAL, // = + UNEQUAL, // <> + IS_NULL, + IS_EMPTY, + EXISTS, + NOT_EXIST; + } -} + } +} \ No newline at end of file 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 index d3f5d804237f6fac1226c1dec20533bf3002bcbb..0ee75e8a46671c3989a3e18bc9e7c35c53e9bb4b 100644 --- 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 @@ -6,6 +6,8 @@ public interface OzgCloudVorgangService { public OzgCloudVorgang getById(OzgCloudVorgangId vorgangId); + public List<OzgCloudVorgangStub> find(OzgCloudVorgangQuery query, Page page); + public List<OzgCloudVorgangStub> search(String searchString); public List<OzgCloudVorgangStub> search(String searchString, Page page);