From 9176e3a811b98c444c266de0fb7201b57e825c1e Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Tue, 1 Oct 2024 08:49:39 +0200 Subject: [PATCH] interface for querying vorgang --- .../apilib/vorgang/OzgCloudVorgangQuery.java | 53 ++++++++++++++++++- .../vorgang/OzgCloudVorgangService.java | 2 + 2 files changed, 54 insertions(+), 1 deletion(-) 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 2c40514..dcaa5ac 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 d3f5d80..0ee75e8 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); -- GitLab