diff --git a/caosdb-proto b/caosdb-proto index 12f072263c05208464b80c0124bde0396b100d86..3f867687cc71e42e964051b35f856abf6b1c8f09 160000 --- a/caosdb-proto +++ b/caosdb-proto @@ -1 +1 @@ -Subproject commit 12f072263c05208464b80c0124bde0396b100d86 +Subproject commit 3f867687cc71e42e964051b35f856abf6b1c8f09 diff --git a/pom.xml b/pom.xml index 92ae3ce8af20fd8697a58d8d53978e79aa28222a..0b3121bda423d81306bb4ee91aef9fdced2886d4 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-GRPC0.0.5</version> + <version>0.5.0-GRPC0.0.6</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 index 3d7df68a50a170fe930807014f36c24bf086820d..c45a011d6f39f47e9b9732b1090194128bc75589 100644 --- a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java +++ b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java @@ -2,6 +2,8 @@ package org.caosdb.server.grpc; import io.grpc.stub.StreamObserver; import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; import java.util.UUID; import org.apache.shiro.SecurityUtils; import org.caosdb.api.entity.v1alpha1.ByIdRequest; @@ -14,6 +16,7 @@ import org.caosdb.api.entity.v1alpha1.RetrieveResponse; import org.caosdb.api.entity.v1alpha1.Version; import org.caosdb.server.entity.EntityInterface; import org.caosdb.server.entity.MagicTypes; +import org.caosdb.server.entity.Message; import org.caosdb.server.entity.RetrieveEntity; import org.caosdb.server.entity.container.ParentContainer; import org.caosdb.server.entity.container.PropertyContainer; @@ -64,7 +67,33 @@ public class EntityTransactionServiceImpl extends EntityTransactionServiceImplBa if (from.hasParents()) { builder.addAllParents(convert(from.getParents())); } + if (from.hasMessage(Message.MessageType.Error.toString())) { + builder.addAllErrors(convert(from.getMessages(Message.MessageType.Error.toString()))); + } + if (from.hasMessage(Message.MessageType.Warning.toString())) { + builder.addAllErrors(convert(from.getMessages(Message.MessageType.Warning.toString()))); + } + if (from.hasMessage(Message.MessageType.Info.toString())) { + builder.addAllErrors(convert(from.getMessages(Message.MessageType.Info.toString()))); + } + + return builder.build(); + } + + private Iterable<? extends org.caosdb.api.entity.v1alpha1.Message> convert( + final List<Message> messages) { + final List<org.caosdb.api.entity.v1alpha1.Message> result = new LinkedList<>(); + for (final Message m : messages) { + result.add(convert(m)); + } + return result; + } + private org.caosdb.api.entity.v1alpha1.Message convert(final Message m) { + final org.caosdb.api.entity.v1alpha1.Message.Builder builder = + org.caosdb.api.entity.v1alpha1.Message.newBuilder(); + builder.setCode(m.getCode()); + builder.setDescription(m.getDescription()); return builder.build(); }