From d6718db839d7a276cb387bc3a47504426f427a07 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Thu, 13 Feb 2025 17:02:35 +0100 Subject: [PATCH] OZG-4097 itcase: Try out grpc mocking with wiremock --- pom.xml | 36 ++- .../osiv2/OsiPostfachRemoteServiceITCase.java | 1 - .../VorgangManagerServerExtension.java | 4 +- .../wiremock/proto/binaryfile.model.proto | 98 ++++++++ .../resources/wiremock/proto/binaryfile.proto | 47 ++++ .../wiremock/proto/callcontext.proto | 42 ++++ .../proto/clientattribute.model.proto | 51 ++++ .../wiremock/proto/clientattribute.proto | 60 +++++ .../wiremock/proto/command.model.proto | 151 ++++++++++++ .../resources/wiremock/proto/command.proto | 60 +++++ .../wiremock/proto/common.model.proto | 59 +++++ .../resources/wiremock/proto/file.model.proto | 56 +++++ src/test/resources/wiremock/proto/file.proto | 40 ++++ .../wiremock/proto/forwarding.model.proto | 52 +++++ .../resources/wiremock/proto/forwarding.proto | 48 ++++ .../proto/route-forwarding.model.proto | 48 ++++ .../wiremock/proto/route-forwarding.proto | 39 ++++ .../wiremock/proto/statistic.model.proto | 92 ++++++++ .../resources/wiremock/proto/statistic.proto | 38 +++ .../wiremock/proto/system.model.proto | 38 +++ .../resources/wiremock/proto/system.proto | 37 +++ .../wiremock/proto/vorgang.model.proto | 221 ++++++++++++++++++ .../resources/wiremock/proto/vorgang.proto | 110 +++++++++ .../proto/vorgangattacheditem.model.proto | 41 ++++ .../wiremock/proto/vorgangattacheditem.proto | 58 +++++ 25 files changed, 1523 insertions(+), 4 deletions(-) create mode 100644 src/test/resources/wiremock/proto/binaryfile.model.proto create mode 100644 src/test/resources/wiremock/proto/binaryfile.proto create mode 100644 src/test/resources/wiremock/proto/callcontext.proto create mode 100644 src/test/resources/wiremock/proto/clientattribute.model.proto create mode 100644 src/test/resources/wiremock/proto/clientattribute.proto create mode 100644 src/test/resources/wiremock/proto/command.model.proto create mode 100644 src/test/resources/wiremock/proto/command.proto create mode 100644 src/test/resources/wiremock/proto/common.model.proto create mode 100644 src/test/resources/wiremock/proto/file.model.proto create mode 100644 src/test/resources/wiremock/proto/file.proto create mode 100644 src/test/resources/wiremock/proto/forwarding.model.proto create mode 100644 src/test/resources/wiremock/proto/forwarding.proto create mode 100644 src/test/resources/wiremock/proto/route-forwarding.model.proto create mode 100644 src/test/resources/wiremock/proto/route-forwarding.proto create mode 100644 src/test/resources/wiremock/proto/statistic.model.proto create mode 100644 src/test/resources/wiremock/proto/statistic.proto create mode 100644 src/test/resources/wiremock/proto/system.model.proto create mode 100644 src/test/resources/wiremock/proto/system.proto create mode 100644 src/test/resources/wiremock/proto/vorgang.model.proto create mode 100644 src/test/resources/wiremock/proto/vorgang.proto create mode 100644 src/test/resources/wiremock/proto/vorgangattacheditem.model.proto create mode 100644 src/test/resources/wiremock/proto/vorgangattacheditem.proto diff --git a/pom.xml b/pom.xml index 9458fa6..c2fc1be 100644 --- a/pom.xml +++ b/pom.xml @@ -21,8 +21,10 @@ <nachrichten-manager.version>2.17.0-SNAPSHOT</nachrichten-manager.version> <openapi-generator.version>7.11.0</openapi-generator.version> <swagger-parser.version>2.1.23</swagger-parser.version> + <wiremock.version>3.12.0</wiremock.version> <wiremock-spring-boot.version>3.6.0</wiremock-spring-boot.version> <wiremock-grpc-extension.version>0.9.0</wiremock-grpc-extension.version> + <grpc.version>1.59.0</grpc.version> </properties> <dependencies> <!-- OZG-Cloud --> @@ -80,6 +82,13 @@ <version>${testcontainers.version}</version> <scope>test</scope> </dependency> + <dependency> + <groupId>org.wiremock</groupId> + <artifactId>wiremock-jetty12</artifactId> + <version>${wiremock}</version> + <scope>test</scope> + </dependency> + <dependency> <groupId>org.wiremock.integrations</groupId> <artifactId>wiremock-spring-boot</artifactId> @@ -88,10 +97,18 @@ </dependency> <dependency> <groupId>org.wiremock</groupId> - <artifactId>wiremock-grpc-extension-jetty12</artifactId> + <artifactId>wiremock-grpc-extension</artifactId> <version>${wiremock-grpc-extension.version}</version> <scope>test</scope> </dependency> + <dependency> + <groupId>io.grpc</groupId> + <artifactId>grpc-stub</artifactId> + </dependency> + <dependency> + <groupId>io.grpc</groupId> + <artifactId>grpc-protobuf</artifactId> + </dependency> <!-- commons --> @@ -174,6 +191,23 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.xolstice.maven.plugins</groupId> + <artifactId>protobuf-maven-plugin</artifactId> + <version>0.6.1</version> + <executions> + <execution> + <goals> + <goal>test-compile</goal> + </goals> + <configuration> + <outputDirectory>${project.build.directory}/generated-sources/protobuf</outputDirectory> + <attachDescriptorSet>true</attachDescriptorSet> + <descriptorSetOutputDirectory>${project.basedir}/src/test/resources/grpc/services.dsc</descriptorSetOutputDirectory> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceITCase.java b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceITCase.java index b20578b..16e57e0 100644 --- a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceITCase.java +++ b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/OsiPostfachRemoteServiceITCase.java @@ -22,7 +22,6 @@ import org.wiremock.grpc.dsl.WireMockGrpcService; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder; -import de.ozgcloud.nachrichten.postfach.PostfachException; import de.ozgcloud.nachrichten.postfach.PostfachMessageCode; import de.ozgcloud.nachrichten.postfach.PostfachNachricht; import de.ozgcloud.nachrichten.postfach.osiv2.exception.Osi2PostfachException; diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/extension/VorgangManagerServerExtension.java b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/extension/VorgangManagerServerExtension.java index 947d0e7..37e732b 100644 --- a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/extension/VorgangManagerServerExtension.java +++ b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/extension/VorgangManagerServerExtension.java @@ -7,7 +7,6 @@ import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.BeforeAllCallback; import org.junit.jupiter.api.extension.ExtensionContext; import org.wiremock.grpc.GrpcExtensionFactory; -import org.wiremock.grpc.Jetty12GrpcExtensionFactory; import org.wiremock.grpc.dsl.WireMockGrpcService; import com.github.tomakehurst.wiremock.WireMockServer; @@ -50,7 +49,8 @@ public class VorgangManagerServerExtension implements BeforeAllCallback, AfterAl vorgangManagerMockServer = new WireMockServer( wireMockConfig() .dynamicPort() - .extensions(new Jetty12GrpcExtensionFactory()) + .withRootDirectory("src/test/resources/wiremock") + .extensions(new GrpcExtensionFactory()) ); vorgangManagerMockServer.start(); } diff --git a/src/test/resources/wiremock/proto/binaryfile.model.proto b/src/test/resources/wiremock/proto/binaryfile.model.proto new file mode 100644 index 0000000..1a88a3c --- /dev/null +++ b/src/test/resources/wiremock/proto/binaryfile.model.proto @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2024 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.grpc.binaryFile; + +import "callcontext.proto"; +import "file.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.grpc.binaryFile"; +option java_outer_classname = "BinaryFileModelProto"; + +message GrpcBinaryFilesRequest { + de.ozgcloud.vorgang.grpc.command.GrpcCallContext context = 1; + repeated string fileId = 2; +} + +message GrpcFindFilesResponse { + repeated de.ozgcloud.vorgang.grpc.file.GrpcOzgFile file = 1; +} + +message GrpcBinaryFileDataRequest { + de.ozgcloud.vorgang.grpc.command.GrpcCallContext context = 1; + string fileId = 2; +} + +message GrpcUploadBinaryFileRequest { + oneof request { + GrpcUploadBinaryFileMetaData metadata = 1; + bytes fileContent = 2; + } +} + +message GrpcUploadBinaryFileMetaData { + de.ozgcloud.vorgang.grpc.command.GrpcCallContext context = 1; + string vorgangId = 2; + string field = 3; + string fileName = 4; + string contentType = 5; + int64 size = 6 [deprecated = true]; +} + +message GrpcUploadBinaryFileResponse { + string fileId = 2; +} + +message GrpcGetBinaryFileDataRequest { + de.ozgcloud.vorgang.grpc.command.GrpcCallContext context = 1; + string fileId = 2; +} + +message GrpcGetBinaryFileDataResponse { + bytes fileContent = 1; +} + +message GrpcBinaryFile { + string id = 1; + string name = 2; + int64 size = 3; + string contentType = 4; +} + +message GrpcUpdateBinaryFileRequest { + oneof request { + GrpcBinaryFileMetadata metadata = 1; + bytes content = 2; + } +} + +message GrpcBinaryFileMetadata { + string fileId = 1; + string fileName = 2; + string contentType = 3; +} + +message GrpcUpdateBinaryFileResponse {} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/binaryfile.proto b/src/test/resources/wiremock/proto/binaryfile.proto new file mode 100644 index 0000000..1b555f4 --- /dev/null +++ b/src/test/resources/wiremock/proto/binaryfile.proto @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.grpc.binaryFile; + +import "binaryfile.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.grpc.binaryFile"; +option java_outer_classname = "BinaryFileProto"; + +service BinaryFileService { + + rpc UploadBinaryFileAsStream(stream GrpcUploadBinaryFileRequest) returns (GrpcUploadBinaryFileResponse) { + } + + rpc GetBinaryFileContent(GrpcGetBinaryFileDataRequest) returns (stream GrpcGetBinaryFileDataResponse) { + } + + rpc FindBinaryFilesMetaData(GrpcBinaryFilesRequest) returns (GrpcFindFilesResponse) { + } + + rpc UpdateBinaryFile(stream GrpcUpdateBinaryFileRequest) returns (GrpcUpdateBinaryFileResponse) { + } +} diff --git a/src/test/resources/wiremock/proto/callcontext.proto b/src/test/resources/wiremock/proto/callcontext.proto new file mode 100644 index 0000000..8631cbc --- /dev/null +++ b/src/test/resources/wiremock/proto/callcontext.proto @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.grpc.command; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.grpc.command"; +option java_outer_classname = "SharedCommandProto"; + +message GrpcCallContext { + string client = 1; + GrpcUser user = 2; + string requestId = 3; +} + +message GrpcUser { + string id = 1; + string name = 2; + repeated string roles = 3 [deprecated=true]; +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/clientattribute.model.proto b/src/test/resources/wiremock/proto/clientattribute.model.proto new file mode 100644 index 0000000..910e0c9 --- /dev/null +++ b/src/test/resources/wiremock/proto/clientattribute.model.proto @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.grpc.clientAttribute; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.grpc.clientAttribute"; + +message GrpcClientAttribute { + string clientName = 1; + string attributeName = 2; + GrpcAccessPermission access = 3; + GrpcClientAttributeValue value = 4; +} + +enum GrpcAccessPermission { + PRIVATE = 0; + READ_ONLY = 1; + READ_WRITE = 2; +} + +message GrpcClientAttributeValue { + oneof value { + string stringValue = 1; + int64 intValue = 2; + double doubleValue = 3; + bool boolValue = 4; + } +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/clientattribute.proto b/src/test/resources/wiremock/proto/clientattribute.proto new file mode 100644 index 0000000..320bce9 --- /dev/null +++ b/src/test/resources/wiremock/proto/clientattribute.proto @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.grpc.clientAttribute; + +import "clientattribute.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.grpc.clientAttribute"; + +service ClientAttributeService { + rpc Set (GrpcSetClientAttributeRequest) returns (GrpcAcknowledgeResponse) { + } + rpc Update (GrpcUpdateClientAttributeRequest) returns (GrpcAcknowledgeResponse) { + } + rpc Delete (GrpcDeleteClientAttributeRequest) returns (GrpcAcknowledgeResponse) { + } +} + +message GrpcSetClientAttributeRequest { + string vorgangId = 1; + GrpcClientAttribute attribute = 2; +} + +message GrpcUpdateClientAttributeRequest { + string vorgangId = 1; + GrpcClientAttribute attribute = 2; +} + +message GrpcDeleteClientAttributeRequest { + string vorgangId = 1; + string clientName = 2; + string attributeName = 3; +} + +message GrpcAcknowledgeResponse { +} + diff --git a/src/test/resources/wiremock/proto/command.model.proto b/src/test/resources/wiremock/proto/command.model.proto new file mode 100644 index 0000000..0e085ab --- /dev/null +++ b/src/test/resources/wiremock/proto/command.model.proto @@ -0,0 +1,151 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.grpc.command; + +import "callcontext.proto"; +import "common.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.grpc.command"; +option java_outer_classname = "CommandModelProto"; + +message GrpcCreateCommandRequest { + de.ozgcloud.vorgang.grpc.command.GrpcCallContext callContext = 1; + string vorgangId = 2; + string relationId = 4; + int64 relationVersion = 5; + GrpcRedirectRequest redirectRequest = 12; + repeated GrpcCommandBodyField body = 15; + de.ozgcloud.vorgang.common.GrpcObject bodyObj = 17; + string orderString = 21; +} + +message GrpcCommandResponse { + enum GrpcResponseCode { + OK = 0; + PENDING = 1; + ERROR = 2; + CONFLICT = 3; + } + GrpcResponseCode responseCode = 1; + string messageCode = 2; + repeated string messageParameters = 3; + GrpcCommand command = 4; +} + +message GrpcRevokeCommandRequest { + de.ozgcloud.vorgang.grpc.command.GrpcCallContext context = 1; + string id = 2; +} + +message GrpcGetCommandRequest { + de.ozgcloud.vorgang.grpc.command.GrpcCallContext context = 1; + string id = 2; +} + +message GrpcSetCommandExecutedRequest { + string commandId = 1; + string createdResource = 2; +} + +message GrpcCommand { + string id = 1; + string vorgangId = 2; + string createdAt = 3; + string finishedAt = 4; + string createdBy = 10; + string createdByName = 11; + string status = 12; + string errorMessage=13; + string relationId = 14; + GrpcCommandBody body = 16; + de.ozgcloud.vorgang.common.GrpcObject bodyObj = 17; + GrpcRedirectRequest redirectRequest = 20; + string orderString = 21; + string createdResource = 22; +} + +message GrpcExistsPendingCommandsRequest { + de.ozgcloud.vorgang.grpc.command.GrpcCallContext context = 1; + string vorgangId = 2; +} + +message GrpcExistsPendingCommandsResponse { + bool existsPendingCommands = 1; +} + +message GrpcRedirectRequest { + de.ozgcloud.vorgang.grpc.command.GrpcCallContext context = 1; + string email = 2; + string password = 3; +} + + +message GrpcGetPendingCommandsRequest { + de.ozgcloud.vorgang.grpc.command.GrpcCallContext context = 1; + string vorgangId = 2; +} + +message GrpcFindCommandsRequest { + de.ozgcloud.vorgang.grpc.command.GrpcCallContext context = 1; + string vorgangId = 2; + repeated string status = 3; + string orderString = 5; +} + + +message GrpcGetPendingCommandsResponse { + repeated GrpcCommand command = 1; +} +message GrpcCommandsResponse { + repeated GrpcCommand command = 1; +} + +message GrpcCommandBody { + repeated GrpcCommandBodyField field = 1; +} + +message GrpcCommandBodyField { + string name = 1; + string value = 2; +} + +message GrpcEmpty { +} + +message GrpcAddSubCommandsRequest { + string parentId = 1; + string executionMode = 2; + bool completedIfSubsCompleted = 3; + repeated GrpcCreateCommand subCommands = 4; +} + +message GrpcCreateCommand { + string order = 1; + string relationId = 2; + int64 relationVersion = 3; + de.ozgcloud.vorgang.common.GrpcObject bodyObj = 4; +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/command.proto b/src/test/resources/wiremock/proto/command.proto new file mode 100644 index 0000000..453c11c --- /dev/null +++ b/src/test/resources/wiremock/proto/command.proto @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.grpc.command; + +import "command.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.grpc.command"; +option java_outer_classname = "CommandProto"; + +service CommandService { + + rpc CreateCommand(GrpcCreateCommandRequest) returns (GrpcCommandResponse) { + } + + rpc RevokeCommand(GrpcRevokeCommandRequest) returns (GrpcCommandResponse) { + } + + rpc GetCommand(GrpcGetCommandRequest) returns (GrpcCommand) { + } + + rpc ExistsPendingCommands(GrpcExistsPendingCommandsRequest) returns (GrpcExistsPendingCommandsResponse) { + } + + rpc GetPendingCommands(GrpcGetPendingCommandsRequest) returns (GrpcGetPendingCommandsResponse){ + } + + rpc FindCommands(GrpcFindCommandsRequest) returns (GrpcCommandsResponse) { + } + + rpc SetCommandExecuted(GrpcSetCommandExecutedRequest) returns (GrpcEmpty) { + + } + + rpc AddSubCommands(GrpcAddSubCommandsRequest) returns (GrpcCommandsResponse) { + } +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/common.model.proto b/src/test/resources/wiremock/proto/common.model.proto new file mode 100644 index 0000000..f1a92f8 --- /dev/null +++ b/src/test/resources/wiremock/proto/common.model.proto @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.common; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.common"; +option java_outer_classname = "CommonModelProto"; + +message GrpcObject { + repeated GrpcProperty property = 1; + repeated GrpcSubObject subObject = 2; +} + +message GrpcProperty { + string name = 1; + repeated string value = 2; +} + +message GrpcSubObject { + string name = 1; + repeated GrpcProperty property = 2; + repeated GrpcSubObject subObject = 3; +} + +enum GrpcQueryOperator { + GREATER_THEN = 0; // > + GREATER_THEN_OR_EQUAL_TO = 1; // >= + LESS_THEN = 2; // < + LESS_THEN_OR_EQUAL_TO = 3; // <= + EQUAL = 4; // = + UNEQUAL = 5; // <> + IS_NULL = 6; + IS_EMPTY = 7; + EXISTS = 8; + NOT_EXIST = 9; +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/file.model.proto b/src/test/resources/wiremock/proto/file.model.proto new file mode 100644 index 0000000..6b81a0d --- /dev/null +++ b/src/test/resources/wiremock/proto/file.model.proto @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2024 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.grpc.file; + +import "callcontext.proto"; + +option java_multiple_files = true; +option java_outer_classname = "FileModelProto"; + + +message GrpcGetAttachmentsRequest { + string eingangId = 2; + string vorgangId = 3; +} + +message GrpcGetAttachmentsResponse { + repeated GrpcOzgFile file = 1; +} + +message GrpcGetRepresentationsRequest { + string eingangId = 2; + string vorgangId = 3; +} +message GrpcGetRepresentationsResponse { + repeated GrpcOzgFile file = 1; +} + +message GrpcOzgFile { + string id = 1; + string name = 2; + int64 size = 3; + string contentType = 4; +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/file.proto b/src/test/resources/wiremock/proto/file.proto new file mode 100644 index 0000000..98da078 --- /dev/null +++ b/src/test/resources/wiremock/proto/file.proto @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.grpc.file; + +import "file.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.grpc.file"; +option java_outer_classname = "FileProto"; + +service FileService { + rpc GetAttachments(GrpcGetAttachmentsRequest) returns (GrpcGetAttachmentsResponse) { + } + + rpc GetRepresentations(GrpcGetRepresentationsRequest) returns (GrpcGetRepresentationsResponse) { + } +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/forwarding.model.proto b/src/test/resources/wiremock/proto/forwarding.model.proto new file mode 100644 index 0000000..8d1f34a --- /dev/null +++ b/src/test/resources/wiremock/proto/forwarding.model.proto @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.forwarding; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.forwarding"; +option java_outer_classname = "ForwardingModelProto"; + +enum GrpcForwardingStatus { + UNDEFINED = 0; + NEW = 1; + SENT = 2; + SUCCESSFULL = 3; + SEND_ERROR = 4; + FAILED = 5; +} + +message GrpcForwarding { + string id = 1; + string vorgangId = 2; + string status = 3; + string zustaendigeStelle = 4; + string createdAt = 5; + string createdBy = 6; + string createdByName = 7; + + string sentAt = 15; + string errorMessage = 16; +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/forwarding.proto b/src/test/resources/wiremock/proto/forwarding.proto new file mode 100644 index 0000000..0b0d5b0 --- /dev/null +++ b/src/test/resources/wiremock/proto/forwarding.proto @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.forwarding; + +import "callcontext.proto"; +import "forwarding.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.forwarding"; +option java_outer_classname = "ForwardingProto"; + + +service ForwardingService { + rpc FindForwardings(GrpcFindForwardingsRequest) returns (GrpcForwardingsResponse) { + } +} + +message GrpcFindForwardingsRequest { + de.ozgcloud.vorgang.grpc.command.GrpcCallContext context = 1; + string vorgangId = 2; +} + +message GrpcForwardingsResponse { + repeated GrpcForwarding forwardings = 1; +} diff --git a/src/test/resources/wiremock/proto/route-forwarding.model.proto b/src/test/resources/wiremock/proto/route-forwarding.model.proto new file mode 100644 index 0000000..46961d4 --- /dev/null +++ b/src/test/resources/wiremock/proto/route-forwarding.model.proto @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.eingang.forwarder; + +import "vorgang.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.eingang.forwarding"; +option java_outer_classname = "RouteForwardingModelProto"; + + +message GrpcRouteForwardingRequest { + GrpcRouteCriteria routeCriteria = 1; + de.ozgcloud.vorgang.vorgang.GrpcEingang eingang = 5; +} + +message GrpcRouteForwardingResponse { + +} + +message GrpcRouteCriteria { + string gemeindeSchluessel = 1; + string webserviceUrl = 2; + string organisationseinheitenId = 3; +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/route-forwarding.proto b/src/test/resources/wiremock/proto/route-forwarding.proto new file mode 100644 index 0000000..aeb0eef --- /dev/null +++ b/src/test/resources/wiremock/proto/route-forwarding.proto @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.eingang.forwarder; + +import "route-forwarding.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.eingang.forwarder"; +option java_outer_classname = "RouteForwardingProto"; + +service RouteForwardingService { + + rpc RouteForwarding(GrpcRouteForwardingRequest) returns (GrpcRouteForwardingResponse) { + } + +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/statistic.model.proto b/src/test/resources/wiremock/proto/statistic.model.proto new file mode 100644 index 0000000..7c90e61 --- /dev/null +++ b/src/test/resources/wiremock/proto/statistic.model.proto @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.statistic; + +import "common.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.statistic"; +option java_outer_classname = "StatisticModelProto"; + +message GrpcVorgangCountRequest { + repeated string countByPath = 1; +} + +message GrpcByStatusResult { + int32 neu = 1; + int32 angenommen = 2; + int32 verworfen = 3; + int32 in_bearbeitung = 4; + int32 beschieden = 5; + int32 abgeschlossen = 6; + int32 weitergeleitet = 7; + +} + +message GrpcPathCountResult { + string name = 1; + int32 value = 2; +} + +message GrpcVorgangCountResponse { + GrpcByStatusResult byStatus = 1; + repeated GrpcPathCountResult pathCountResult = 2; +} + +message GrpcVorgangStatisticRequest { + repeated GrpcVorgangStatisticQuery query = 1; +} + +message GrpcVorgangStatisticQuery { + string resultName = 1; + GroupMethod groupMethod = 2; + string path = 3; + de.ozgcloud.vorgang.common.GrpcQueryOperator operator = 4; + oneof operand { + int32 operandIntValue = 5; + bool operandBoolValue = 6; + string operandStringValue = 7; + } + + enum GroupMethod { + COUNT = 0; + EXISTS = 1; + } + +} + +message GrpcVorgangStatisticResponse { + repeated GrpcVorgangStatisticResult result = 1; +} + +message GrpcVorgangStatisticResult { + string name = 1; + oneof result { + int32 resultIntValue = 2; + bool resultBoolValue = 3; + string resultStringValue = 4; + } +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/statistic.proto b/src/test/resources/wiremock/proto/statistic.proto new file mode 100644 index 0000000..f571704 --- /dev/null +++ b/src/test/resources/wiremock/proto/statistic.proto @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.statistic; + +import "statistic.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.statistic"; +option java_outer_classname = "StatisticProto"; + +service StatisticService { + rpc CountVorgang(GrpcVorgangCountRequest) returns (GrpcVorgangCountResponse); + + rpc GetVorgangStatistic(GrpcVorgangStatisticRequest) returns (GrpcVorgangStatisticResponse); +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/system.model.proto b/src/test/resources/wiremock/proto/system.model.proto new file mode 100644 index 0000000..81f9efd --- /dev/null +++ b/src/test/resources/wiremock/proto/system.model.proto @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.system; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.system"; +option java_outer_classname = "SystemStatusModelProto"; + +message GrpcGetSystemStatusRequest {} + +message GrpcGetSystemStatusResponse { + bool isSearchServerAvailable = 1; + string javaVersion = 2; + string buildVersion = 3; +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/system.proto b/src/test/resources/wiremock/proto/system.proto new file mode 100644 index 0000000..ba413cd --- /dev/null +++ b/src/test/resources/wiremock/proto/system.proto @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.system; + +import "system.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.system"; +option java_outer_classname = "SystemStatusProto"; + +service SystemStatusService { + + rpc GetSystemStatus(GrpcGetSystemStatusRequest) returns (GrpcGetSystemStatusResponse); +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/vorgang.model.proto b/src/test/resources/wiremock/proto/vorgang.model.proto new file mode 100644 index 0000000..206498e --- /dev/null +++ b/src/test/resources/wiremock/proto/vorgang.model.proto @@ -0,0 +1,221 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.vorgang; + +import "clientattribute.model.proto"; +import "common.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.vorgang"; +option java_outer_classname = "VorgangModelProto"; + +message GrpcVorgangHeader { + string id = 1; + int64 version = 2; + string status = 3; + string name = 4; + string createdAt = 5; + string aktenzeichen = 6; + string assignedTo = 7; + string nummer = 8; + repeated de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttribute clientAttributes = 9; + string formEngineName = 15; +} + +message GrpcVorgangWithEingang { + string id = 1; + int64 version = 2; + string status = 3; + string name = 4; + string createdAt = 5; + string aktenzeichen = 6; + string assignedTo = 7; + string nummer = 8; + repeated de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttribute clientAttributes = 9; + + GrpcEingang eingang = 10; + string formEngineName = 15; + GrpcVorgangHead header = 16; +} + +message GrpcVorgangHead { + GrpcServiceKonto serviceKonto = 1; + GrpcLock lock = 2; +} + +message GrpcLock { + string clientName = 1; + string lockedSince = 2; + string reason = 3; +} + +message GrpcEingang { + string id = 1; + + GrpcEingangHeader header = 2; + GrpcAntragsteller antragsteller = 3; + GrpcZustaendigeStelle zustaendigeStelle = 4; + + GrpcFormData formData = 10; + + int32 numberOfAttachments = 11; + int32 numberOfRepresentations = 12; + + repeated GrpcIncomingFileGroup attachments = 20; + repeated GrpcIncomingFile representations = 21; +} + +message GrpcIncomingFileGroup { + string name = 1; + repeated GrpcIncomingFile files = 2; +} + +message GrpcIncomingFile { + string id = 1; + string vendorId = 2; + string name = 3; + string contentType = 4; + int64 size = 5; + bytes content = 6; +} + +message GrpcEingangHeader { + string requestId = 1; + string createdAt = 2; + string formId = 3; + string formName = 4; + string sender = 5; + string customer = 6 [deprecated = true]; + string customerId = 7 [deprecated = true]; + string client = 8 [deprecated = true]; + string clientId = 9 [deprecated = true]; + string formEngineName = 10; + GrpcServiceKonto serviceKonto = 11; + string vorgangNummer = 12; +} + +message GrpcServiceKonto { + string type = 1; + repeated GrpcPostfachAddress postfachAddresses = 2; + string trustLevel = 3; +} + +message GrpcPostfachAddress { + string version = 1; + de.ozgcloud.vorgang.common.GrpcObject identifier = 2; + int32 type = 3; +} + +message GrpcAntragsteller { + string anrede = 1; + string nachname = 2; + string vorname = 3; + string geburtsdatum = 4; + string geburtsort = 5; + string geburtsname = 6; + string email = 7; + string telefon = 8; + string strasse = 9; + string hausnummer = 10; + string plz = 11; + string ort = 12; + string postfachId = 13 [deprecated = true]; + + GrpcFormData otherData = 30; + string firmaName = 31; +} + +message GrpcFormData { + repeated GrpcFormField field = 1; + repeated GrpcSubForm form = 2; +} + +message GrpcFormField { + string name = 1; + string value = 2; + string label = 3; +} + +message GrpcSubForm { + string title = 1; + repeated GrpcFormField field = 2; + repeated GrpcSubForm subForm = 3; + string label = 4; + GrpcControlData controlData = 5; +} + +message GrpcControlData { + bool metadata = 1; +} + +message GrpcZustaendigeStelle { + string organisationseinheitenId = 1; + string email = 2; + string bezeichnung = 3; + string gemeindeSchluessel = 4; + string amtlicherRegionalSchluessel = 5; + string hausanschriftStrasse = 6; + string hausanschriftPlz = 7; + string hausanschriftOrt = 8; + string telefon = 9; +} + +message GrpcQuery { + GrpcLogicalOperator logicalOperator = 1; + repeated GrpcVorgangQueryExpression expressions = 2; + GrpcQuery nestedQuery = 3; +} + +enum GrpcLogicalOperator { + AND = 0; + OR = 1; +} + +message GrpcVorgangQueryExpression { + string path = 1; + de.ozgcloud.vorgang.common.GrpcQueryOperator operator = 2; + oneof operand { + int32 operandIntValue = 3; + bool operandBoolValue = 4; + string operandStringValue = 5; + } +} + +message GrpcCreateCollaborationVorgangRequest { + oneof request { + GrpcCreateCollaborationRequestData requestData = 1; + } +} + +message GrpcCreateCollaborationRequestData { + string vorgangId = 1; + int32 collaborationLevel = 2; + string organisationEinheitId = 3; +} + +message GrpcCreateCollaborationVorgangResponse { + string vorgangId = 1; +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/vorgang.proto b/src/test/resources/wiremock/proto/vorgang.proto new file mode 100644 index 0000000..2dbba69 --- /dev/null +++ b/src/test/resources/wiremock/proto/vorgang.proto @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.vorgang; + +import "vorgang.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.vorgang"; +option java_outer_classname = "VorgangProto"; + +service VorgangService { + + rpc FindVorgang(GrpcFindVorgangRequest) returns (GrpcFindVorgangResponse) { + } + + rpc FindVorgangWithEingang(GrpcFindVorgangWithEingangRequest) returns (GrpcFindVorgangWithEingangResponse) { + } + + rpc StartCreation(GrpcCreateVorgangRequest) returns (GrpcCreateVorgangResponse) { + } + + rpc FinishCreation(GrpcFinishCreationRequest) returns (GrpcFinishCreationResponse) { + } + + rpc CreateCollaborationVorgang(GrpcCreateCollaborationVorgangRequest) returns (GrpcCreateCollaborationVorgangResponse) { + } +} + +message GrpcCreateVorgangRequest { + GrpcEingang eingang = 1; +} + +message GrpcCreateVorgangResponse { + string vorgangId = 1; + string message = 2; +} + +message GrpcFindVorgangRequest { + int32 offset = 1; + int32 limit = 2; + oneof request { + string searchBy = 3; + GrpcQuery query = 6; + } + GrpcFilterBy filterBy = 4; + GrpcOrderBy orderBy = 5; + + enum GrpcOrderBy { + PRIORITY = 0; + EA_PRIORITY = 1; + CREATED_AT_DESC = 2; + NEXT_WIEDERVORLAGE_FRIST = 3; + } +} + +message GrpcFindVorgangResponse { + int64 total = 1; + repeated GrpcVorgangHeader vorgang = 2; +} + +message GrpcFindVorgangWithEingangRequest { + string id = 1; + GrpcFilterBy filterBy = 2; +} + +message GrpcFilterBy { + bool filterByOrganisationseinheitenId = 1; + repeated string organisationseinheitId = 2; + repeated string status = 3; + string assignedTo = 4; + bool filterByAssignedTo = 5; + bool hasNextWiedervorlageFrist = 6 [deprecated = true]; +} + +message GrpcFindVorgangWithEingangResponse { + GrpcVorgangWithEingang vorgangWithEingang = 1; +} + +message GrpcFinishCreationRequest { + string vorgangId = 1; + repeated GrpcIncomingFileGroup attachments = 2; + repeated GrpcIncomingFile representations = 3; +} + +message GrpcFinishCreationResponse { + string message = 1; +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/vorgangattacheditem.model.proto b/src/test/resources/wiremock/proto/vorgangattacheditem.model.proto new file mode 100644 index 0000000..06971f3 --- /dev/null +++ b/src/test/resources/wiremock/proto/vorgangattacheditem.model.proto @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.vorgangAttachedItem; + +import "common.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.vorgangAttachedItem"; +option java_outer_classname = "VorgangAttachedItemModelProto"; + +message GrpcVorgangAttachedItem { + string id = 1; + int64 version = 2; + string client = 3; + string vorgangId = 4; + string itemName = 5; + de.ozgcloud.vorgang.common.GrpcObject item = 6; +} \ No newline at end of file diff --git a/src/test/resources/wiremock/proto/vorgangattacheditem.proto b/src/test/resources/wiremock/proto/vorgangattacheditem.proto new file mode 100644 index 0000000..38e41cc --- /dev/null +++ b/src/test/resources/wiremock/proto/vorgangattacheditem.proto @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2023 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. + */ +syntax = "proto3"; + +package de.ozgcloud.vorgang.vorgangAttachedItem; + +import "vorgangattacheditem.model.proto"; + +option java_multiple_files = true; +option java_package = "de.ozgcloud.vorgang.vorgangAttachedItem"; +option java_outer_classname = "VorgangAttachedItemProto"; + +service VorgangAttachedItemService { + rpc GetById(GrpcVorgangAttachedItemRequest) returns (GrpcVorgangAttachedItemResponse) { + } + + rpc Find(GrpcFindVorgangAttachedItemRequest) returns (GrpcFindVorgangAttachedItemResponse) { + } +} + +message GrpcVorgangAttachedItemRequest { + string id = 1; +} + +message GrpcVorgangAttachedItemResponse { + GrpcVorgangAttachedItem vorgangAttachedItem = 1; +} + +message GrpcFindVorgangAttachedItemRequest { + string vorgangId = 1; + string itemName = 2; + string client = 3; +} + +message GrpcFindVorgangAttachedItemResponse { + repeated GrpcVorgangAttachedItem vorgangAttachedItems = 1; +} \ No newline at end of file -- GitLab