From 6f5d3c94e58ddf35eb3fab7a8b69d7ecba774a5c Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Mon, 27 Sep 2021 11:34:44 +0200 Subject: [PATCH] MAINT: clean-up --- .../grpc/EntityTransactionServiceImpl.java | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java index caeac0e6..3aa9954e 100644 --- a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java +++ b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java @@ -39,6 +39,7 @@ import org.caosdb.api.entity.v1alpha1.UpdateRequest; import org.caosdb.api.entity.v1alpha1.UpdateResponse; import org.caosdb.api.entity.v1alpha1.Version; import org.caosdb.datetime.DateTimeInterface; +import org.caosdb.server.CaosDBException; import org.caosdb.server.datatype.AbstractCollectionDatatype; import org.caosdb.server.datatype.AbstractDatatype; import org.caosdb.server.datatype.BooleanDatatype; @@ -476,6 +477,12 @@ public class EntityTransactionServiceImpl extends EntityTransactionServiceImplBa FileDownload file_download = null; for (final TransactionRequest sub_request : request.getRequestsList()) { + if (sub_request.getWrappedRequestsCase() != WrappedRequestsCase.RETRIEVE_REQUEST) { + throw new CaosDBException( + "Cannot process a " + + sub_request.getWrappedRequestsCase().name() + + " in a read-only request."); + } final boolean fileDownload = sub_request.getRetrieveRequest().getRegisterFileDownload(); if (sub_request.getRetrieveRequest().hasQuery() && !sub_request.getRetrieveRequest().getQuery().getQuery().isBlank()) { @@ -564,18 +571,17 @@ public class EntityTransactionServiceImpl extends EntityTransactionServiceImplBa public MultiTransactionResponse transaction(final MultiTransactionRequest request) throws Exception { - // we currently can only process one request type per multi transaction request. - WrappedRequestsCase requestCase = WrappedRequestsCase.WRAPPEDREQUESTS_NOT_SET; - if (request.getRequestsCount() > 0) { - requestCase = request.getRequests(0).getWrappedRequestsCase(); - } - - switch (requestCase) { - case RETRIEVE_REQUEST: - return retrieve(request); - default: - return write(request); + final WrappedRequestsCase requestCase = request.getRequests(0).getWrappedRequestsCase(); + switch (requestCase) { + case RETRIEVE_REQUEST: + return retrieve(request); + default: + return write(request); + } + } else { + // empty request, empty response. + return MultiTransactionResponse.newBuilder().build(); } } @@ -649,7 +655,10 @@ public class EntityTransactionServiceImpl extends EntityTransactionServiceImplBa } break; default: - throw new UnsupportedOperationException("Not implemented"); + throw new CaosDBException( + "Cannot process a " + + request.getWrappedRequestsCase().name() + + " in a write request."); } } -- GitLab