Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • caosdb/src/caosdb-proto
1 result
Show changes
Commits on Source (3)
......@@ -127,17 +127,63 @@ message Parent {
string description = 3;
}
// Request a transaction of an entity by its ID. This can be used to implement
// a retrieval or deletion.
message ByIdRequest {
// ID of requested entity
string id = 1;
message CountResult {
int32 count = 1;
}
// Response to a retrieve request
message RetrieveResponse {
// Payload of the retrieval
Entity entity = 1;
oneof query_response {
Entity entity = 1;
SelectQueryResult select_result = 3;
CountResult count_result = 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
string id = 1;
// A query
Query query = 2;
}
}
message SingleDeleteResponse {
IdResponse delete_response = 1;
// Transaction errors.
repeated Message errors = 2;
// Transaction warnings.
......@@ -146,19 +192,117 @@ message RetrieveResponse {
repeated Message infos = 4;
}
// Wrapper for different kinds of retrievals (currently, only by ID). We need
// this in order to make a repeated field of these different kinds of
// retrievals.
message RetrieveRequest {
// Wrapped special kind of request.
oneof wrapped_request {
// A single retrieve
ByIdRequest by_id = 1;
message TransactionResponse {
oneof wrapped_response {
IdResponse delete_response = 1;
IdResponse update_response = 2;
RetrieveResponse retrieve_response = 3;
IdResponse insert_response = 4;
}
}
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
service EntityTransactionService {
// 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);*/
}