From af8c7f8bdbabee5c1e8ad7ba63fbab2922ad9c3a Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Tue, 19 Jan 2021 15:55:15 +0100 Subject: [PATCH] WIP --- .../server/grpc/EntityTransactionImpl.java | 38 ++++++++++++++++--- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/caosdb/server/grpc/EntityTransactionImpl.java b/src/main/java/org/caosdb/server/grpc/EntityTransactionImpl.java index e03fd633..2ccba8ae 100644 --- a/src/main/java/org/caosdb/server/grpc/EntityTransactionImpl.java +++ b/src/main/java/org/caosdb/server/grpc/EntityTransactionImpl.java @@ -1,18 +1,44 @@ package org.caosdb.server.grpc; -import io.grpc.stub.StreamObserver; +import java.util.UUID; +import org.apache.shiro.SecurityUtils; import org.caosdb.grpc.Entity; import org.caosdb.grpc.EntityTransactionServiceGrpc.EntityTransactionServiceImplBase; +import org.caosdb.server.entity.EntityInterface; +import org.caosdb.server.entity.container.RetrieveContainer; +import org.caosdb.server.transaction.Retrieve; +import org.caosdb.server.utils.EntityStatus; +import io.grpc.stub.StreamObserver; public class EntityTransactionImpl extends EntityTransactionServiceImplBase { @Override public void retrieve(Entity request, StreamObserver<Entity> responseObserver) { - Entity response = - Entity.newBuilder(request) - .setName("EntityName") - .setDescription("EntityDescription") - .build(); + String requested_entity_id = request.getEid(); + + RetrieveContainer container = new RetrieveContainer(SecurityUtils.getSubject(), System.currentTimeMillis(), UUID.randomUUID().toString(), null); + container.add(Integer.parseInt(requested_entity_id)); + Retrieve retrieve = new Retrieve(container); + try { + retrieve.execute(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + EntityInterface retrieved_entity = retrieve.getContainer().get(0); + + Entity response; + if (retrieved_entity.getEntityStatus() == EntityStatus.VALID) { + response = + Entity.newBuilder(request) + + + .setName(retrieved_entity.getName()) + .setDescription(retrieved_entity.getDescription()) + .build(); + } else { + response = Entity.newBuilder(request).setDescription("DOES NOT EXIST").build(); + } responseObserver.onNext(response); responseObserver.onCompleted(); -- GitLab