mirror of
https://github.com/hexedtech/codemp.git
synced 2024-10-23 02:09:20 +02:00
alemi
1cf17dc151
reuse as much as possible, keep rpc messages close with their rpc, helper struct for uuid with into() and from(). also replaced the simple things, such as imports and struct fields
51 lines
1.1 KiB
Protocol Buffer
51 lines
1.1 KiB
Protocol Buffer
syntax = "proto2";
|
|
|
|
package workspace;
|
|
|
|
import "common.proto";
|
|
import "files.proto";
|
|
import "auth.proto";
|
|
|
|
service Workspace {
|
|
rpc Attach (common.Empty) returns (stream WorkspaceEvent);
|
|
|
|
rpc CreateBuffer (files.BufferNode) returns (common.Empty);
|
|
rpc AccessBuffer (files.BufferNode) returns (BufferCredentials);
|
|
rpc DeleteBuffer (files.BufferNode) returns (common.Empty);
|
|
|
|
rpc ListBuffers (common.Empty) returns (files.BufferTree);
|
|
rpc ListUsers (common.Empty) returns (common.IdentityList);
|
|
rpc ListBufferUsers (files.BufferNode) returns (common.IdentityList); //TODO discuss
|
|
}
|
|
|
|
message WorkspaceEvent {
|
|
message UserJoin {
|
|
required common.Identity user = 1;
|
|
}
|
|
message UserLeave {
|
|
required common.Identity user = 1;
|
|
}
|
|
message FileCreate {
|
|
required string path = 1;
|
|
}
|
|
message FileRename {
|
|
required string before = 1;
|
|
required string after = 2;
|
|
}
|
|
message FileDelete {
|
|
required string path = 1;
|
|
}
|
|
|
|
oneof event {
|
|
UserJoin join = 1;
|
|
UserLeave leave = 2;
|
|
FileCreate create = 3;
|
|
FileRename rename = 4;
|
|
FileDelete delete = 5;
|
|
}
|
|
}
|
|
|
|
message BufferCredentials {
|
|
required common.Identity id = 1;
|
|
required auth.Token token = 2;
|
|
}
|