From fee0ef211b7286773233400dc37dd0d6f8135aeb Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Wed, 28 Jul 2021 10:43:07 +0200
Subject: [PATCH] WIP: insert delete

---
 proto/caosdb/entity/v1alpha1/main.proto | 32 ++++++++++++++++++-------
 1 file changed, 24 insertions(+), 8 deletions(-)

diff --git a/proto/caosdb/entity/v1alpha1/main.proto b/proto/caosdb/entity/v1alpha1/main.proto
index 04ed3c2..4e35a4e 100644
--- a/proto/caosdb/entity/v1alpha1/main.proto
+++ b/proto/caosdb/entity/v1alpha1/main.proto
@@ -201,6 +201,15 @@ message TransactionResponse {
   }
 }
 
+message TransactionRequest {
+  oneof wrapped_requests {
+    QueryOrIdRequest retrieve_request = 1;
+    FullEntityRequest update_request = 2;
+    FullEntityRequest insert_request = 3;
+    QueryOrIdRequest delete_request = 4;
+  }
+}
+
 message SingleTransactionResponse {
   TransactionResponse response = 1;
   // Transaction errors.
@@ -221,6 +230,10 @@ message MultiTransactionResponse {
   repeated Message transaction_infos = 4;
 }
 
+message MultiTransactionRequest {
+  repeated TransactionRequest requests = 1;
+}
+
 message IdResponse {
   string id = 1;
   // Entity errors.
@@ -297,12 +310,15 @@ service EntityTransactionService {
   // Issue a single update request
   rpc SingleUpdate(SingleUpdateRequest) returns (SingleUpdateResponse);
 
-  // Issue a single retrieve request
-  rpc MultiRetrieve(MultiRetrieveRequest) returns (MultiRetrieveResponse);
-  // Issue a single retrieve request
-  /*rpc Insert(MultiInsertRequest) returns (MultiInsertResponse);*/
-  /*// Issue a single delete request*/
-  /*rpc Delete(MultiDeleteRequest) returns (MultiDeleteResponse);*/
-  /*// Issue a single update request*/
-  /*rpc Update(MultiUpdateRequest) returns (MultiUpdateResponse);*/
+  //// Issue multiple retrieve requests
+  //rpc MultiRetrieve(MultiRetrieveRequest) returns (MultiRetrieveResponse);
+  //// Issue multiple retrieve requests
+  //rpc MultiInsert(MultiInsertRequest) returns (MultiInsertResponse);
+  //// Issue multiple delete requests
+  //rpc MultiDelete(MultiDeleteRequest) returns (MultiDeleteResponse);
+  //// Issue multiple update requests
+  //rpc MultiUpdate(MultiUpdateRequest) returns (MultiUpdateResponse);
+
+  //// Issue multiple mixed requests
+  //rpc MultiTransaction(MultiTransactionRequest) returns (MultiTransactionResponse);
 }
-- 
GitLab