Skip to content
Snippets Groups Projects
Verified Commit 6f258fae authored by Timm Fitschen's avatar Timm Fitschen
Browse files

WIP: insert delete

parent 4845aa8e
No related branches found
No related tags found
1 merge request!1ENH: Allow insertion and deletion of single entities
Pipeline #10814 failed
...@@ -137,7 +137,56 @@ message ByIdRequest { ...@@ -137,7 +137,56 @@ message ByIdRequest {
// Response to a retrieve request // Response to a retrieve request
message RetrieveResponse { message RetrieveResponse {
// Payload of the retrieval // Payload of the retrieval
Entity entity = 1; oneof query_response {
Entity entity = 1;
SelectQueryResult select_result = 3;
CountResult = 4;
}
}
// Response to single retrieve request
message SingleRetrieveRequest {
// Retrieve by query or by id
QueryOrIdRequest retrieve_request = 1;
}
// CaosDB Query
message Query {
// The string representation of the query, e.g. "FIND Person WITH name = Aisha"
string query = 1;
}
message SelectQueryRows {
repeated string cells = 1;
}
message SelectQueryResult {
SelectQueryRows header = 1;
repeated SelectQueryRows data_rows = 2;
}
message SingleRetrieveResponse {
RetrieveResponse retrieve_response = 1;
// Transaction errors.
repeated Message transaction_errors = 2;
// Transaction warnings.
repeated Message transaction_warnings = 3;
// Transaction info messages.
repeated Message transaction_infos = 4;
}
message QueryOrIdRequest {
oneof wrapped_request {
// A single id
ByIdRequest by_id = 1;
// A query
QueryRequest query = 2;
}
}
message SingleDeleteResponse {
IdResponse delete_response = 1;
// Transaction errors. // Transaction errors.
repeated Message errors = 2; repeated Message errors = 2;
// Transaction warnings. // Transaction warnings.
...@@ -146,19 +195,117 @@ message RetrieveResponse { ...@@ -146,19 +195,117 @@ message RetrieveResponse {
repeated Message infos = 4; repeated Message infos = 4;
} }
// Wrapper for different kinds of retrievals (currently, only by ID). We need message TransactionResponse {
// this in order to make a repeated field of these different kinds of oneof wrapped_response {
// retrievals. IdResponse delete_response = 1;
message RetrieveRequest { IdResponse update_response = 2;
// Wrapped special kind of request. RetrieveResponse retrieve_response = 3;
oneof wrapped_request { IdResponse insert_response = 4;
// A single retrieve
ByIdRequest by_id = 1;
} }
} }
message SingleTransactionResponse {
TransactionResponse response = 1;
// Transaction errors.
repeated Message transaction_errors = 2;
// Transaction warnings.
repeated Message transaction_warnings = 3;
// Transaction info messages.
repeated Message transaction_infos = 4;
}
message MultiTransactionResponse {
repeated TransactionResponse responses = 1;
// Transaction errors.
repeated Message transaction_errors = 2;
// Transaction warnings.
repeated Message transaction_warnings = 3;
// Transaction info messages.
repeated Message transaction_infos = 4;
}
message IdResponse {
string id = 1;
// Entity errors.
repeated Message entity_errors = 2;
// Entity warnings.
repeated Message entity_warnings = 3;
// Entity info messages.
repeated Message entity_infos = 4;
}
message SingleDeleteRequest {
// Delete by query or by id
QueryOrIdRequest retrieve_request = 1;
}
message FullEntityRequest {
// Payload of the entity request
Entity entity = 1;
}
message SingleUpdateRequest {
FullEntityRequest update_request = 1;
}
message SingleInsertRequest {
FullEntityRequest insert_request = 1;
}
message SingleInsertResponse {
// Reponse contains the id of the new entity.
IdResponse insert_response = 1;
// Transaction errors.
repeated Message transaction_errors = 2;
// Transaction warnings.
repeated Message transaction_warnings = 3;
// Transaction info messages.
repeated Message transaction_infos = 4;
}
message SingleUpdateResponse {
// Reponse contains the id of the updated entity.
IdResponse update_response = 1;
// Transaction errors.
repeated Message transaction_errors = 2;
// Transaction warnings.
repeated Message transaction_warnings = 3;
// Transaction info messages.
repeated Message transaction_infos = 4;
}
message MultiRetrieveRequest {
// Wrapped retrieve requests
repeated QueryOrIdRequest requests = 1;
}
message MultiRetrieveResponse {
repeated RetrieveResponse response = 1;
// Transaction errors.
repeated Message transaction_errors = 2;
// Transaction warnings.
repeated Message transaction_warnings = 3;
// Transaction info messages.
repeated Message transaction_infos = 4;
}
// Entity Transaction Service // Entity Transaction Service
service EntityTransactionService { service EntityTransactionService {
// Issue a single retrieve request // Issue a single retrieve request
rpc Retrieve(RetrieveRequest) returns (RetrieveResponse); rpc SingleRetrieve(SingleRetrieveRequest) returns (SingleRetrieveResponse);
// Issue a single retrieve request
rpc SingleInsert(SingleInsertRequest) returns (SingleInsertResponse);
// Issue a single delete request
rpc SingleDelete(SingleDeleteRequest) returns (SingleDeleteResponse);
// 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);*/
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment