From 8670937792f8b97275ca896a33a3690d45bd105e Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Wed, 7 Jul 2021 12:41:43 +0200
Subject: [PATCH] WIP: retrieve simple entity

---
 caosdb-proto                                  |  2 +-
 pom.xml                                       |  2 +-
 .../grpc/EntityTransactionServiceImpl.java    | 20 +++++++++++++++++++
 .../org/caosdb/server/grpc/GRPCServer.java    | 10 ++++++----
 4 files changed, 28 insertions(+), 6 deletions(-)
 create mode 100644 src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java

diff --git a/caosdb-proto b/caosdb-proto
index b0cade5e..dd9abe34 160000
--- a/caosdb-proto
+++ b/caosdb-proto
@@ -1 +1 @@
-Subproject commit b0cade5e02daff99eaa46e1201f2786ac873114b
+Subproject commit dd9abe3499367c4eded4774ade1acbc90ef048b3
diff --git a/pom.xml b/pom.xml
index 67c013de..c36df3ae 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.caosdb</groupId>
   <artifactId>caosdb-server</artifactId>
-  <version>0.5.0-GRPC003</version>
+  <version>0.5.0-GRPC004</version>
   <packaging>jar</packaging>
   <name>CaosDB Server</name>
   <scm>
diff --git a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java
new file mode 100644
index 00000000..1ca75f9c
--- /dev/null
+++ b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java
@@ -0,0 +1,20 @@
+package org.caosdb.server.grpc;
+
+import io.grpc.stub.StreamObserver;
+import org.caosdb.api.entity.v1alpha1.Entity;
+import org.caosdb.api.entity.v1alpha1.EntityTransactionServiceGrpc.EntityTransactionServiceImplBase;
+import org.caosdb.api.entity.v1alpha1.RetrieveRequest;
+import org.caosdb.api.entity.v1alpha1.RetrieveResponse;
+
+public class EntityTransactionServiceImpl extends EntityTransactionServiceImplBase {
+
+  @Override
+  public void retrieve(
+      final RetrieveRequest request, final StreamObserver<RetrieveResponse> responseObserver) {
+    final Entity entity = Entity.newBuilder().setDescription("This is an entity").build();
+    final RetrieveResponse response = RetrieveResponse.newBuilder().setEntity(entity).build();
+
+    responseObserver.onNext(response);
+    responseObserver.onCompleted();
+  }
+}
diff --git a/src/main/java/org/caosdb/server/grpc/GRPCServer.java b/src/main/java/org/caosdb/server/grpc/GRPCServer.java
index 9d1b4c6a..0fd6da78 100644
--- a/src/main/java/org/caosdb/server/grpc/GRPCServer.java
+++ b/src/main/java/org/caosdb/server/grpc/GRPCServer.java
@@ -114,10 +114,12 @@ public class GRPCServer {
   private List<ServerServiceDefinition> getEnabledServices() {
     final List<ServerServiceDefinition> services = new LinkedList<>();
 
-    final GeneralInfoServiceImpl gIS = new GeneralInfoServiceImpl();
-    final ServerServiceDefinition serviceDefinition =
-        ServerInterceptors.intercept(gIS, authInterceptor);
-    services.add(serviceDefinition);
+    final GeneralInfoServiceImpl generalInfoService = new GeneralInfoServiceImpl();
+    services.add(ServerInterceptors.intercept(generalInfoService, authInterceptor));
+
+    final EntityTransactionServiceImpl entityTransactionService =
+        new EntityTransactionServiceImpl();
+    services.add(ServerInterceptors.intercept(entityTransactionService, authInterceptor));
 
     return services;
   }
-- 
GitLab