mirror of
https://github.com/anyproto/anytype-heart.git
synced 2025-06-09 17:44:59 +09:00
Merge pull request #27 from anytypeio/proto-fixes
#26 Proto: full message coverage with comments; proto fixes, scenarios
This commit is contained in:
commit
c1c5d9df58
13 changed files with 4282 additions and 2628 deletions
|
@ -33,8 +33,8 @@ func TestAccountCreate(t *testing.T) {
|
|||
accountCreateResp := mw.AccountCreate(&pb.RpcAccountCreateRequest{Name: "name_test", Avatar: &pb.RpcAccountCreateRequestAvatarOfAvatarLocalPath{"testdata/pic1.jpg"}})
|
||||
require.Equal(t, "name_test", accountCreateResp.Account.Name, "AccountCreateResponse has account with wrong name '%s'", accountCreateResp.Account.Name)
|
||||
|
||||
imageGetBlobResp := mw.ImageGetBlob(&pb.RpcImageGetBlobRequest{Id: accountCreateResp.Account.Avatar.GetImage().Id, Size_: pb.ModelImage_SMALL})
|
||||
require.Equal(t, pb.RpcImageGetBlobResponseError_NULL, imageGetBlobResp.Error.Code, "ImageGetBlobResponse contains error: %+v", imageGetBlobResp.Error)
|
||||
imageGetBlobResp := mw.ImageGetBlob(&pb.RpcIpfsImageGetBlobRequest{Id: accountCreateResp.Account.Avatar.GetImage().Id, Size_: pb.ModelImage_SMALL})
|
||||
require.Equal(t, pb.RpcIpfsImageGetBlobResponseError_NULL, imageGetBlobResp.Error.Code, "ImageGetBlobResponse contains error: %+v", imageGetBlobResp.Error)
|
||||
require.True(t, len(imageGetBlobResp.Blob) > 0, "ava size should be greater than 0")
|
||||
|
||||
err := mw.Stop()
|
||||
|
|
26
core/ipfs.go
26
core/ipfs.go
|
@ -9,9 +9,9 @@ import (
|
|||
"github.com/textileio/go-textile/ipfs"
|
||||
)
|
||||
|
||||
func (mw *Middleware) IpfsGetFile(req *pb.RpcIpfsGetFileRequest) *pb.RpcIpfsGetFileResponse {
|
||||
response := func(data []byte, media string, name string, code pb.RpcIpfsGetFileResponseErrorCode, err error) *pb.RpcIpfsGetFileResponse {
|
||||
m := &pb.RpcIpfsGetFileResponse{Data: data, Media: media, Error: &pb.RpcIpfsGetFileResponseError{Code: code}}
|
||||
func (mw *Middleware) IpfsGetFile(req *pb.RpcIpfsFileGetRequest) *pb.RpcIpfsFileGetResponse {
|
||||
response := func(data []byte, media string, name string, code pb.RpcIpfsFileGetResponseErrorCode, err error) *pb.RpcIpfsFileGetResponse {
|
||||
m := &pb.RpcIpfsFileGetResponse{Data: data, Media: media, Error: &pb.RpcIpfsFileGetResponseError{Code: code}}
|
||||
if err != nil {
|
||||
m.Error.Description = err.Error()
|
||||
}
|
||||
|
@ -22,18 +22,18 @@ func (mw *Middleware) IpfsGetFile(req *pb.RpcIpfsGetFileRequest) *pb.RpcIpfsGetF
|
|||
reader, info, err := mw.Anytype.Textile.Node().FileContent(req.Id)
|
||||
if err != nil {
|
||||
if err == core2.ErrFileNotFound {
|
||||
return response(nil, "", "", pb.RpcIpfsGetFileResponseError_NOT_FOUND, err)
|
||||
return response(nil, "", "", pb.RpcIpfsFileGetResponseError_NOT_FOUND, err)
|
||||
}
|
||||
|
||||
return response(nil, "", "", pb.RpcIpfsGetFileResponseError_UNKNOWN_ERROR, err)
|
||||
return response(nil, "", "", pb.RpcIpfsFileGetResponseError_UNKNOWN_ERROR, err)
|
||||
}
|
||||
|
||||
data, err := ioutil.ReadAll(reader)
|
||||
if err != nil {
|
||||
return response(nil, "", "", pb.RpcIpfsGetFileResponseError_UNKNOWN_ERROR, err)
|
||||
return response(nil, "", "", pb.RpcIpfsFileGetResponseError_UNKNOWN_ERROR, err)
|
||||
}
|
||||
|
||||
return response(data, info.Media, info.Name, pb.RpcIpfsGetFileResponseError_NULL, nil)
|
||||
return response(data, info.Media, info.Name, pb.RpcIpfsFileGetResponseError_NULL, nil)
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -68,9 +68,9 @@ func IpfsGetData(b []byte) []byte {
|
|||
|
||||
*/
|
||||
|
||||
func (mw *Middleware) ImageGetBlob(req *pb.RpcImageGetBlobRequest) *pb.RpcImageGetBlobResponse {
|
||||
response := func(blob []byte, code pb.RpcImageGetBlobResponseErrorCode, err error) *pb.RpcImageGetBlobResponse {
|
||||
m := &pb.RpcImageGetBlobResponse{Blob: blob, Error: &pb.RpcImageGetBlobResponseError{Code: code}}
|
||||
func (mw *Middleware) ImageGetBlob(req *pb.RpcIpfsImageGetBlobRequest) *pb.RpcIpfsImageGetBlobResponse {
|
||||
response := func(blob []byte, code pb.RpcIpfsImageGetBlobResponseErrorCode, err error) *pb.RpcIpfsImageGetBlobResponse {
|
||||
m := &pb.RpcIpfsImageGetBlobResponse{Blob: blob, Error: &pb.RpcIpfsImageGetBlobResponseError{Code: code}}
|
||||
if err != nil {
|
||||
m.Error.Description = err.Error()
|
||||
}
|
||||
|
@ -81,11 +81,11 @@ func (mw *Middleware) ImageGetBlob(req *pb.RpcImageGetBlobRequest) *pb.RpcImageG
|
|||
data, err := ipfs.DataAtPath(mw.Anytype.Textile.Node().Ipfs(), req.Id+"/0/"+strings.ToLower(req.GetSize_().String())+"/content")
|
||||
if err != nil {
|
||||
if err == core2.ErrFileNotFound {
|
||||
return response(nil, pb.RpcImageGetBlobResponseError_NOT_FOUND, err)
|
||||
return response(nil, pb.RpcIpfsImageGetBlobResponseError_NOT_FOUND, err)
|
||||
}
|
||||
|
||||
return response(nil, pb.RpcImageGetBlobResponseError_UNKNOWN_ERROR, err)
|
||||
return response(nil, pb.RpcIpfsImageGetBlobResponseError_UNKNOWN_ERROR, err)
|
||||
}
|
||||
|
||||
return response(data, pb.RpcImageGetBlobResponseError_NULL, nil)
|
||||
return response(data, pb.RpcIpfsImageGetBlobResponseError_NULL, nil)
|
||||
}
|
||||
|
|
647
docs/proto.md
647
docs/proto.md
File diff suppressed because it is too large
Load diff
|
@ -24,32 +24,33 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
|
|||
func init() { proto.RegisterFile("service.proto", fileDescriptor_a0b84a42fa06f626) }
|
||||
|
||||
var fileDescriptor_a0b84a42fa06f626 = []byte{
|
||||
// 396 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x94, 0x4f, 0x4e, 0xf2, 0x40,
|
||||
0x18, 0x87, 0x21, 0x5f, 0xf2, 0xa1, 0x23, 0x10, 0x33, 0x4b, 0x12, 0x2a, 0xff, 0x8c, 0xae, 0x66,
|
||||
0xa1, 0x27, 0x10, 0x16, 0x60, 0x82, 0x1a, 0x41, 0x25, 0x92, 0xb8, 0x28, 0xc3, 0x1b, 0xd2, 0x58,
|
||||
0x66, 0x6a, 0x3b, 0x90, 0x70, 0x0b, 0x6f, 0xe3, 0x15, 0x5c, 0xb2, 0x74, 0x69, 0xe0, 0x22, 0xa6,
|
||||
0xed, 0xeb, 0x98, 0x96, 0xb6, 0x6c, 0xe7, 0x79, 0x7e, 0x4f, 0xc9, 0x4c, 0x02, 0x29, 0x79, 0xe0,
|
||||
0x2e, 0x2d, 0x0e, 0xcc, 0x71, 0xa5, 0x92, 0xb4, 0x60, 0x8a, 0x95, 0x5a, 0x39, 0x50, 0x29, 0x73,
|
||||
0x39, 0x9f, 0x9b, 0x62, 0xea, 0x85, 0xe0, 0xe2, 0xe3, 0x80, 0x94, 0x3b, 0xb6, 0x05, 0x42, 0x75,
|
||||
0x10, 0xd0, 0x11, 0x29, 0x8e, 0x4c, 0xdb, 0x06, 0xd5, 0x71, 0xc1, 0x54, 0x40, 0x1b, 0x0c, 0xc7,
|
||||
0x6c, 0xe0, 0x70, 0x16, 0x22, 0x16, 0x32, 0x36, 0x80, 0xb7, 0x05, 0x78, 0xaa, 0xd2, 0xcc, 0x74,
|
||||
0x3c, 0x47, 0x0a, 0x0f, 0xe8, 0x98, 0x94, 0x42, 0x32, 0x00, 0x2e, 0x97, 0xe0, 0xd2, 0xc4, 0x15,
|
||||
0x42, 0x9d, 0x6e, 0x65, 0x4b, 0xd8, 0x7e, 0x21, 0xe5, 0x2b, 0xce, 0xe5, 0x42, 0xe8, 0x78, 0x74,
|
||||
0x87, 0x70, 0xa7, 0x7e, 0xba, 0xc7, 0xfa, 0xfb, 0xe9, 0xc8, 0xf0, 0x52, 0x9a, 0x89, 0xbb, 0xd8,
|
||||
0xad, 0xb4, 0xb2, 0xa5, 0x9d, 0xf6, 0x10, 0x6c, 0xe0, 0x2a, 0xa5, 0x1d, 0xc2, 0x3d, 0x6d, 0x2d,
|
||||
0x61, 0xfb, 0x99, 0x14, 0xaf, 0xe7, 0xe6, 0x0c, 0xba, 0xa0, 0xda, 0xb6, 0x9c, 0xc4, 0xd2, 0x01,
|
||||
0x62, 0x5d, 0x50, 0xcc, 0x87, 0x29, 0xe9, 0x1d, 0x09, 0xd3, 0xf7, 0x84, 0x3c, 0x81, 0xeb, 0x59,
|
||||
0x52, 0x74, 0x41, 0xd1, 0x5a, 0x64, 0x83, 0x20, 0x58, 0xfd, 0x56, 0xeb, 0x19, 0x06, 0x26, 0x7b,
|
||||
0xa4, 0xd0, 0x97, 0xb3, 0x21, 0x88, 0x29, 0xad, 0x46, 0xec, 0xbe, 0x9c, 0x31, 0xff, 0x58, 0xc7,
|
||||
0x8c, 0x34, 0x8c, 0xa5, 0x5b, 0x72, 0xd8, 0xb6, 0x25, 0x7f, 0xbd, 0x73, 0x40, 0xd0, 0x93, 0x88,
|
||||
0x1c, 0x9c, 0x33, 0x1f, 0xe8, 0x5a, 0x2d, 0x5d, 0xc0, 0xde, 0x03, 0x39, 0x0a, 0x8e, 0xf1, 0xf5,
|
||||
0xeb, 0x09, 0x83, 0xd8, 0xdb, 0x37, 0xb2, 0x94, 0x58, 0xf5, 0xd1, 0x99, 0xa6, 0x55, 0x43, 0x94,
|
||||
0x59, 0xd5, 0x0a, 0x56, 0x81, 0x1c, 0x07, 0xa0, 0x67, 0x79, 0x4a, 0xba, 0xab, 0x1b, 0xb9, 0x04,
|
||||
0x7a, 0x96, 0xb0, 0x43, 0xce, 0x7c, 0x41, 0x7f, 0xe0, 0x7c, 0xbf, 0x18, 0x7e, 0xa6, 0x5d, 0xfd,
|
||||
0xdc, 0x18, 0xf9, 0xf5, 0xc6, 0xc8, 0x7f, 0x6f, 0x8c, 0xfc, 0xfb, 0xd6, 0xc8, 0xad, 0xb7, 0x46,
|
||||
0xee, 0x6b, 0x6b, 0xe4, 0xc6, 0xff, 0x6c, 0x6b, 0x32, 0xf9, 0x1f, 0xfc, 0xbf, 0x5c, 0xfe, 0x04,
|
||||
0x00, 0x00, 0xff, 0xff, 0xfc, 0x61, 0x96, 0x16, 0x89, 0x04, 0x00, 0x00,
|
||||
// 406 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0x4f, 0x6f, 0xda, 0x30,
|
||||
0x18, 0x87, 0x41, 0x93, 0xc6, 0xe6, 0x01, 0x9a, 0x7c, 0x44, 0x22, 0xe3, 0xdf, 0x34, 0x76, 0xf1,
|
||||
0x61, 0xfb, 0x04, 0x83, 0x03, 0x20, 0xb1, 0x56, 0x85, 0xb6, 0x48, 0x48, 0x3d, 0x04, 0xf3, 0x16,
|
||||
0x45, 0x0d, 0x76, 0x1a, 0x1b, 0x24, 0xbe, 0x45, 0xbf, 0x52, 0x6f, 0x3d, 0x72, 0xec, 0xb1, 0x82,
|
||||
0x2f, 0x52, 0x25, 0x79, 0xeb, 0x2a, 0x90, 0x84, 0x5e, 0xfd, 0x3c, 0xbf, 0xc7, 0x28, 0xb2, 0x20,
|
||||
0x25, 0x05, 0xfe, 0xda, 0xe1, 0xc0, 0x3c, 0x5f, 0x6a, 0x49, 0x0b, 0xb6, 0xd8, 0xe8, 0x8d, 0x07,
|
||||
0x95, 0x32, 0x97, 0xcb, 0xa5, 0x2d, 0xe6, 0x2a, 0x02, 0x7f, 0x1e, 0xbf, 0x90, 0x72, 0xd7, 0x75,
|
||||
0x40, 0xe8, 0x2e, 0x02, 0x3a, 0x21, 0xc5, 0x89, 0xed, 0xba, 0xa0, 0xbb, 0x3e, 0xd8, 0x1a, 0x68,
|
||||
0x83, 0xe1, 0x98, 0x8d, 0x3c, 0xce, 0x22, 0xc4, 0x22, 0xc6, 0x46, 0x70, 0xbf, 0x02, 0xa5, 0x2b,
|
||||
0xcd, 0x4c, 0x47, 0x79, 0x52, 0x28, 0xa0, 0x53, 0x52, 0x8a, 0xc8, 0x08, 0xb8, 0x5c, 0x83, 0x4f,
|
||||
0x13, 0x57, 0x08, 0x4d, 0xba, 0x95, 0x2d, 0x61, 0xfb, 0x86, 0x94, 0xff, 0x71, 0x2e, 0x57, 0xc2,
|
||||
0xc4, 0xe3, 0x3b, 0x84, 0x47, 0xf5, 0x9f, 0x27, 0xac, 0xf7, 0x9f, 0x8e, 0x0c, 0x3f, 0x4a, 0x33,
|
||||
0x71, 0x77, 0xf0, 0x55, 0x5a, 0xd9, 0xd2, 0x51, 0x7b, 0x0c, 0x2e, 0x70, 0x9d, 0xd2, 0x8e, 0xe0,
|
||||
0x89, 0xb6, 0x91, 0xb0, 0xcd, 0x49, 0x71, 0xb0, 0xb4, 0x17, 0xd0, 0x03, 0xdd, 0x71, 0xe5, 0x8c,
|
||||
0xb6, 0x63, 0xab, 0x81, 0x77, 0xab, 0x58, 0xc8, 0x59, 0x0f, 0x34, 0x0b, 0x0c, 0xd3, 0xff, 0xfd,
|
||||
0x01, 0x13, 0x2f, 0xb9, 0x20, 0xe4, 0x1a, 0x7c, 0xe5, 0x48, 0xd1, 0x03, 0x4d, 0x6b, 0xb1, 0x21,
|
||||
0x82, 0x70, 0xf5, 0x96, 0xae, 0x67, 0x18, 0x98, 0xec, 0x93, 0xc2, 0x50, 0x2e, 0xc6, 0x20, 0xe6,
|
||||
0xb4, 0x1a, 0xb3, 0x87, 0x72, 0xc1, 0x82, 0x63, 0x13, 0xb3, 0xd2, 0x30, 0x96, 0xce, 0xc8, 0xd7,
|
||||
0x8e, 0x2b, 0xf9, 0xdd, 0xb9, 0x07, 0x82, 0xfe, 0x88, 0xc9, 0xe1, 0x39, 0x0b, 0x80, 0xa9, 0xd5,
|
||||
0xd2, 0x05, 0xec, 0x5d, 0x92, 0x6f, 0xe1, 0x31, 0xbe, 0x83, 0x7a, 0xc2, 0xe0, 0xe0, 0x15, 0x34,
|
||||
0xb2, 0x94, 0x83, 0xea, 0x95, 0x37, 0x4f, 0xab, 0x46, 0x28, 0xb3, 0x6a, 0x14, 0xac, 0x02, 0xf9,
|
||||
0x1e, 0x82, 0xbe, 0xa3, 0xb4, 0xf4, 0x37, 0xff, 0xe5, 0x1a, 0xe8, 0xaf, 0x84, 0x1d, 0x72, 0x16,
|
||||
0x08, 0xe6, 0x82, 0xf6, 0x69, 0x31, 0xba, 0xa6, 0x53, 0x7d, 0xda, 0x59, 0xf9, 0xed, 0xce, 0xca,
|
||||
0xbf, 0xec, 0xac, 0xfc, 0xc3, 0xde, 0xca, 0x6d, 0xf7, 0x56, 0xee, 0x79, 0x6f, 0xe5, 0xa6, 0x9f,
|
||||
0x5c, 0x67, 0x36, 0xfb, 0x1c, 0xfe, 0xd3, 0xfc, 0x7d, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x9f, 0x2a,
|
||||
0x77, 0x4e, 0x93, 0x04, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
|
@ -64,7 +65,7 @@ type ClientCommandsHandler interface {
|
|||
AccountRecover(*pb.RpcAccountRecoverRequest) *pb.RpcAccountRecoverResponse
|
||||
AccountCreate(*pb.RpcAccountCreateRequest) *pb.RpcAccountCreateResponse
|
||||
AccountSelect(*pb.RpcAccountSelectRequest) *pb.RpcAccountSelectResponse
|
||||
ImageGetBlob(*pb.RpcImageGetBlobRequest) *pb.RpcImageGetBlobResponse
|
||||
ImageGetBlob(*pb.RpcIpfsImageGetBlobRequest) *pb.RpcIpfsImageGetBlobResponse
|
||||
VersionGet(*pb.RpcVersionGetRequest) *pb.RpcVersionGetResponse
|
||||
LogSend(*pb.RpcLogSendRequest) *pb.RpcLogSendResponse
|
||||
BlockOpen(*pb.RpcBlockOpenRequest) *pb.RpcBlockOpenResponse
|
||||
|
@ -128,9 +129,9 @@ func AccountSelect(b []byte) []byte {
|
|||
}
|
||||
|
||||
func ImageGetBlob(b []byte) []byte {
|
||||
in := new(pb.RpcImageGetBlobRequest)
|
||||
in := new(pb.RpcIpfsImageGetBlobRequest)
|
||||
if err := in.Unmarshal(b); err != nil {
|
||||
resp, _ := (&pb.RpcImageGetBlobResponse{Error: &pb.RpcImageGetBlobResponseError{Code: pb.RpcImageGetBlobResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
|
||||
resp, _ := (&pb.RpcIpfsImageGetBlobResponse{Error: &pb.RpcIpfsImageGetBlobResponseError{Code: pb.RpcIpfsImageGetBlobResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
|
||||
return resp
|
||||
}
|
||||
resp, _ := clientCommandsHandler.ImageGetBlob(in).Marshal()
|
||||
|
|
286
pb/changes.pb.go
286
pb/changes.pb.go
|
@ -22,6 +22,8 @@ var _ = math.Inf
|
|||
// proto package needs to be updated.
|
||||
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
//
|
||||
// Change contains single block change or list of block changes.
|
||||
type Change struct {
|
||||
}
|
||||
|
||||
|
@ -58,6 +60,8 @@ func (m *Change) XXX_DiscardUnknown() {
|
|||
|
||||
var xxx_messageInfo_Change proto.InternalMessageInfo
|
||||
|
||||
//
|
||||
// Change.Block contains only one, single change for one block.
|
||||
type ChangeBlock struct {
|
||||
}
|
||||
|
||||
|
@ -876,6 +880,8 @@ func (*ChangeBlockContentText) XXX_OneofWrappers() []interface{} {
|
|||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Change.Single contains only one, single change, but for a list of blocks.
|
||||
type ChangeSingle struct {
|
||||
}
|
||||
|
||||
|
@ -913,7 +919,8 @@ func (m *ChangeSingle) XXX_DiscardUnknown() {
|
|||
var xxx_messageInfo_ChangeSingle proto.InternalMessageInfo
|
||||
|
||||
type ChangeSingleBlocksList struct {
|
||||
Id []string `protobuf:"bytes,1,rep,name=id,proto3" json:"id,omitempty"`
|
||||
Id []string `protobuf:"bytes,1,rep,name=id,proto3" json:"id,omitempty"`
|
||||
Author *ModelAccount `protobuf:"bytes,2,opt,name=author,proto3" json:"author,omitempty"`
|
||||
// Types that are valid to be assigned to Change:
|
||||
// *ChangeSingleBlocksListChangeOfText
|
||||
// *ChangeSingleBlocksListChangeOfFields
|
||||
|
@ -967,31 +974,31 @@ type isChangeSingleBlocksListChange interface {
|
|||
}
|
||||
|
||||
type ChangeSingleBlocksListChangeOfText struct {
|
||||
Text *ChangeBlockContentText `protobuf:"bytes,2,opt,name=text,proto3,oneof" json:"text,omitempty"`
|
||||
Text *ChangeBlockContentText `protobuf:"bytes,3,opt,name=text,proto3,oneof" json:"text,omitempty"`
|
||||
}
|
||||
type ChangeSingleBlocksListChangeOfFields struct {
|
||||
Fields *ChangeBlockFields `protobuf:"bytes,3,opt,name=fields,proto3,oneof" json:"fields,omitempty"`
|
||||
Fields *ChangeBlockFields `protobuf:"bytes,4,opt,name=fields,proto3,oneof" json:"fields,omitempty"`
|
||||
}
|
||||
type ChangeSingleBlocksListChangeOfPremissions struct {
|
||||
Premissions *ChangeBlockPermissions `protobuf:"bytes,4,opt,name=premissions,proto3,oneof" json:"premissions,omitempty"`
|
||||
Premissions *ChangeBlockPermissions `protobuf:"bytes,5,opt,name=premissions,proto3,oneof" json:"premissions,omitempty"`
|
||||
}
|
||||
type ChangeSingleBlocksListChangeOfChildrenIds struct {
|
||||
ChildrenIds *ChangeBlockChildrenIds `protobuf:"bytes,5,opt,name=childrenIds,proto3,oneof" json:"childrenIds,omitempty"`
|
||||
ChildrenIds *ChangeBlockChildrenIds `protobuf:"bytes,6,opt,name=childrenIds,proto3,oneof" json:"childrenIds,omitempty"`
|
||||
}
|
||||
type ChangeSingleBlocksListChangeOfPage struct {
|
||||
Page *ChangeBlockContentPage `protobuf:"bytes,6,opt,name=page,proto3,oneof" json:"page,omitempty"`
|
||||
Page *ChangeBlockContentPage `protobuf:"bytes,7,opt,name=page,proto3,oneof" json:"page,omitempty"`
|
||||
}
|
||||
type ChangeSingleBlocksListChangeOfDashboard struct {
|
||||
Dashboard *ChangeBlockContentDashboard `protobuf:"bytes,7,opt,name=dashboard,proto3,oneof" json:"dashboard,omitempty"`
|
||||
Dashboard *ChangeBlockContentDashboard `protobuf:"bytes,8,opt,name=dashboard,proto3,oneof" json:"dashboard,omitempty"`
|
||||
}
|
||||
type ChangeSingleBlocksListChangeOfVideo struct {
|
||||
Video *ChangeBlockContentVideo `protobuf:"bytes,8,opt,name=video,proto3,oneof" json:"video,omitempty"`
|
||||
Video *ChangeBlockContentVideo `protobuf:"bytes,9,opt,name=video,proto3,oneof" json:"video,omitempty"`
|
||||
}
|
||||
type ChangeSingleBlocksListChangeOfImage struct {
|
||||
Image *ChangeBlockContentImage `protobuf:"bytes,9,opt,name=image,proto3,oneof" json:"image,omitempty"`
|
||||
Image *ChangeBlockContentImage `protobuf:"bytes,10,opt,name=image,proto3,oneof" json:"image,omitempty"`
|
||||
}
|
||||
type ChangeSingleBlocksListChangeOfFile struct {
|
||||
File *ChangeBlockContentFile `protobuf:"bytes,10,opt,name=file,proto3,oneof" json:"file,omitempty"`
|
||||
File *ChangeBlockContentFile `protobuf:"bytes,11,opt,name=file,proto3,oneof" json:"file,omitempty"`
|
||||
}
|
||||
|
||||
func (*ChangeSingleBlocksListChangeOfText) isChangeSingleBlocksListChange() {}
|
||||
|
@ -1018,6 +1025,13 @@ func (m *ChangeSingleBlocksList) GetId() []string {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (m *ChangeSingleBlocksList) GetAuthor() *ModelAccount {
|
||||
if m != nil {
|
||||
return m.Author
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *ChangeSingleBlocksList) GetText() *ChangeBlockContentText {
|
||||
if x, ok := m.GetChange().(*ChangeSingleBlocksListChangeOfText); ok {
|
||||
return x.Text
|
||||
|
@ -1096,6 +1110,8 @@ func (*ChangeSingleBlocksList) XXX_OneofWrappers() []interface{} {
|
|||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Change.Multiple contains array of changes, for a list of blocks each.
|
||||
type ChangeMultiple struct {
|
||||
}
|
||||
|
||||
|
@ -1133,7 +1149,8 @@ func (m *ChangeMultiple) XXX_DiscardUnknown() {
|
|||
var xxx_messageInfo_ChangeMultiple proto.InternalMessageInfo
|
||||
|
||||
type ChangeMultipleBlocksList struct {
|
||||
Changes []*ChangeSingleBlocksList `protobuf:"bytes,1,rep,name=changes,proto3" json:"changes,omitempty"`
|
||||
Author *ModelAccount `protobuf:"bytes,1,opt,name=author,proto3" json:"author,omitempty"`
|
||||
Changes []*ChangeSingleBlocksList `protobuf:"bytes,2,rep,name=changes,proto3" json:"changes,omitempty"`
|
||||
}
|
||||
|
||||
func (m *ChangeMultipleBlocksList) Reset() { *m = ChangeMultipleBlocksList{} }
|
||||
|
@ -1169,6 +1186,13 @@ func (m *ChangeMultipleBlocksList) XXX_DiscardUnknown() {
|
|||
|
||||
var xxx_messageInfo_ChangeMultipleBlocksList proto.InternalMessageInfo
|
||||
|
||||
func (m *ChangeMultipleBlocksList) GetAuthor() *ModelAccount {
|
||||
if m != nil {
|
||||
return m.Author
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *ChangeMultipleBlocksList) GetChanges() []*ChangeSingleBlocksList {
|
||||
if m != nil {
|
||||
return m.Changes
|
||||
|
@ -1198,55 +1222,57 @@ func init() {
|
|||
func init() { proto.RegisterFile("changes.proto", fileDescriptor_b16a38c6509bd894) }
|
||||
|
||||
var fileDescriptor_b16a38c6509bd894 = []byte{
|
||||
// 759 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0xcf, 0x6e, 0xd3, 0x4a,
|
||||
0x14, 0xc6, 0xed, 0xd4, 0xce, 0x9f, 0x93, 0x7b, 0xab, 0xab, 0x51, 0xaf, 0x64, 0x59, 0x55, 0x14,
|
||||
0xca, 0x82, 0x80, 0x8a, 0x91, 0x8a, 0x04, 0x48, 0x5d, 0x14, 0xa5, 0x7f, 0x48, 0x25, 0x8a, 0x8a,
|
||||
0x53, 0x58, 0xb0, 0x73, 0xe2, 0x69, 0x32, 0xaa, 0x63, 0x5b, 0xf6, 0xb4, 0x34, 0x2b, 0xd6, 0xec,
|
||||
0x58, 0xf3, 0x10, 0xac, 0x90, 0x78, 0x05, 0x96, 0x5d, 0x21, 0x36, 0x48, 0xd0, 0x6e, 0x78, 0x0c,
|
||||
0x74, 0x66, 0x1c, 0xdb, 0x8d, 0xac, 0x24, 0x12, 0xdd, 0x65, 0x26, 0xe7, 0xf7, 0xcd, 0x37, 0x33,
|
||||
0x67, 0x3e, 0x19, 0xfe, 0xed, 0x0f, 0x1d, 0x7f, 0x40, 0x63, 0x2b, 0x8c, 0x02, 0x1e, 0x90, 0x8a,
|
||||
0xe3, 0x8f, 0xf9, 0x38, 0xa4, 0xe6, 0x3f, 0xa3, 0xc0, 0xa5, 0x5e, 0x32, 0xbd, 0xf6, 0xe9, 0x3f,
|
||||
0x28, 0x6f, 0x8b, 0x42, 0xf3, 0x17, 0x80, 0xde, 0xf6, 0x82, 0xfe, 0x89, 0xf9, 0x18, 0xca, 0x7b,
|
||||
0x8c, 0x7a, 0x6e, 0x4c, 0xee, 0x43, 0xf9, 0x58, 0xfc, 0x32, 0xd4, 0xa6, 0xda, 0xaa, 0x6f, 0xfc,
|
||||
0x6f, 0x25, 0x32, 0xd6, 0x01, 0xaa, 0x58, 0x5d, 0x1e, 0x9d, 0xf6, 0xb9, 0x9d, 0x14, 0x99, 0x2f,
|
||||
0xa1, 0x7e, 0x48, 0xa3, 0x11, 0x8b, 0x63, 0x16, 0xf8, 0x31, 0x69, 0x43, 0x3d, 0xcc, 0x86, 0x89,
|
||||
0x44, 0x73, 0x4a, 0x42, 0x2c, 0x69, 0xe5, 0x30, 0x3b, 0x0f, 0x99, 0x0f, 0xa0, 0xbe, 0x3d, 0x64,
|
||||
0x9e, 0x1b, 0x51, 0x7f, 0xdf, 0x8d, 0x49, 0x13, 0xea, 0xfd, 0x6c, 0x68, 0xa8, 0xcd, 0xa5, 0x56,
|
||||
0xcd, 0xce, 0x4f, 0x99, 0x1f, 0x6b, 0x50, 0xd9, 0x0e, 0x7c, 0x4e, 0x7d, 0x6e, 0xbe, 0x03, 0xed,
|
||||
0xd0, 0x19, 0x50, 0xb2, 0x05, 0x7a, 0xcc, 0xc7, 0x1e, 0x15, 0x16, 0x96, 0x37, 0xee, 0x14, 0x5a,
|
||||
0x48, 0x20, 0x0b, 0x09, 0xab, 0x8b, 0xe5, 0x1d, 0xc5, 0x96, 0x1c, 0x59, 0x07, 0xbd, 0x87, 0x45,
|
||||
0x46, 0x49, 0xec, 0x61, 0xa5, 0x48, 0x00, 0xab, 0x45, 0x51, 0xbb, 0x0a, 0x65, 0x79, 0xf8, 0xe6,
|
||||
0x7b, 0x15, 0x6a, 0x3b, 0x4e, 0x3c, 0xec, 0x05, 0x4e, 0xe4, 0x92, 0x9d, 0xeb, 0x36, 0xd6, 0x67,
|
||||
0xda, 0x48, 0xb1, 0x9b, 0xf2, 0xf2, 0x59, 0x05, 0x6d, 0x8f, 0x79, 0x94, 0x98, 0x50, 0xe9, 0xcb,
|
||||
0x45, 0x84, 0x91, 0x5a, 0x47, 0xb1, 0x27, 0x13, 0xf2, 0xa4, 0x1c, 0x4e, 0x85, 0xf8, 0xbc, 0x93,
|
||||
0x42, 0x35, 0xab, 0x8b, 0xe5, 0xd2, 0x9d, 0xc3, 0x29, 0xd9, 0x85, 0x4a, 0x18, 0xd1, 0x33, 0x46,
|
||||
0xdf, 0x1a, 0x4b, 0xc2, 0xdf, 0xdd, 0xf9, 0x12, 0x87, 0x12, 0x40, 0x1f, 0x09, 0x9b, 0xb3, 0xfd,
|
||||
0x45, 0x05, 0x7d, 0x7f, 0x84, 0xb7, 0x38, 0xcb, 0xf7, 0xd3, 0xeb, 0xbe, 0x5b, 0x33, 0x17, 0x15,
|
||||
0x72, 0xd3, 0xc6, 0xf7, 0xa6, 0x8d, 0xdf, 0x5b, 0x40, 0x63, 0xae, 0xf3, 0xd7, 0xcc, 0xa5, 0xc1,
|
||||
0xcd, 0x39, 0x17, 0x72, 0x7f, 0xe9, 0x5c, 0x6a, 0xcc, 0x74, 0xfe, 0xad, 0x04, 0xda, 0x11, 0x3d,
|
||||
0xe7, 0x64, 0x05, 0x34, 0x4e, 0xcf, 0x33, 0xd7, 0x62, 0x94, 0x3d, 0xa7, 0x45, 0x9a, 0x04, 0x75,
|
||||
0xa6, 0x5b, 0x78, 0x0b, 0xf4, 0x91, 0x13, 0x9d, 0xc4, 0x89, 0xdf, 0x05, 0x04, 0x0e, 0xb0, 0x1c,
|
||||
0x05, 0x04, 0x47, 0x9a, 0x00, 0x3c, 0x18, 0x0c, 0x3c, 0xea, 0xf4, 0x3c, 0x6a, 0x68, 0x4d, 0xb5,
|
||||
0x55, 0xed, 0x28, 0x76, 0x6e, 0x8e, 0xbc, 0x00, 0xc0, 0x52, 0x1a, 0x1d, 0x8d, 0x43, 0x6a, 0xe8,
|
||||
0x0b, 0x3c, 0xb8, 0x74, 0x1d, 0xc9, 0xa0, 0x5e, 0xa6, 0x40, 0x1a, 0x50, 0xeb, 0x0f, 0x69, 0xff,
|
||||
0x44, 0x2c, 0x58, 0x4e, 0x16, 0xcc, 0xa6, 0xc4, 0x15, 0xe3, 0x80, 0xba, 0x46, 0x25, 0xf9, 0x77,
|
||||
0x32, 0x91, 0x3b, 0xd8, 0xdf, 0x1a, 0x94, 0xbb, 0xcc, 0x1f, 0x78, 0xd4, 0xfc, 0xa1, 0x01, 0x08,
|
||||
0x03, 0xf1, 0x73, 0x16, 0x73, 0xb2, 0x0c, 0x25, 0xe6, 0x26, 0x79, 0x56, 0x62, 0x2e, 0x79, 0x92,
|
||||
0x9c, 0xbc, 0x7c, 0xe4, 0x6b, 0xa9, 0x73, 0x19, 0xd6, 0x05, 0xd6, 0xd3, 0xdb, 0x79, 0x94, 0x66,
|
||||
0xb6, 0x3c, 0xdd, 0xd5, 0x62, 0x56, 0x26, 0x7c, 0x47, 0x99, 0x84, 0x37, 0xd9, 0x85, 0x7a, 0x18,
|
||||
0xd1, 0x34, 0xad, 0x35, 0x01, 0xdf, 0x2a, 0x86, 0x73, 0x71, 0xdd, 0x51, 0xec, 0x3c, 0x87, 0x32,
|
||||
0xf9, 0x84, 0xd6, 0x67, 0xc9, 0xe4, 0x92, 0x1d, 0x65, 0x72, 0x1c, 0xee, 0x3f, 0x74, 0x06, 0xf2,
|
||||
0xa8, 0xe7, 0xee, 0x1f, 0x23, 0x1b, 0xf7, 0x8f, 0x04, 0x79, 0x06, 0x35, 0x77, 0x92, 0x9d, 0xe2,
|
||||
0x2e, 0xf2, 0x0d, 0x56, 0x88, 0xa7, 0x51, 0x8b, 0x57, 0x9a, 0xb2, 0x64, 0x13, 0xf4, 0x33, 0x7c,
|
||||
0x2b, 0x46, 0x55, 0x88, 0xdc, 0x9e, 0x2d, 0x22, 0x9e, 0x15, 0x76, 0xa8, 0x60, 0x10, 0x66, 0x18,
|
||||
0x11, 0x46, 0x6d, 0x11, 0x58, 0xa4, 0x09, 0xc2, 0x82, 0xc1, 0xcd, 0x1f, 0x33, 0x8f, 0x1a, 0xb0,
|
||||
0xc8, 0xe6, 0x31, 0x42, 0x71, 0xf3, 0x48, 0xe4, 0x5a, 0xed, 0x15, 0x54, 0x0f, 0x4e, 0x3d, 0xce,
|
||||
0x42, 0x8f, 0x9a, 0xfb, 0xd7, 0x5a, 0x6d, 0x13, 0x5b, 0x55, 0x7c, 0x1b, 0x88, 0x7e, 0x2b, 0xb8,
|
||||
0x1d, 0xd9, 0xa2, 0x56, 0xc6, 0xd8, 0x13, 0xa2, 0xbd, 0xfa, 0xf5, 0xb2, 0xa1, 0x5e, 0x5c, 0x36,
|
||||
0xd4, 0x9f, 0x97, 0x0d, 0xf5, 0xc3, 0x55, 0x43, 0xb9, 0xb8, 0x6a, 0x28, 0xdf, 0xaf, 0x1a, 0xca,
|
||||
0x9b, 0x52, 0xd8, 0xeb, 0x95, 0xc5, 0x57, 0xc5, 0xc3, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x87,
|
||||
0x43, 0x0e, 0x1e, 0x7d, 0x08, 0x00, 0x00,
|
||||
// 789 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0x4f, 0x6f, 0xd3, 0x4c,
|
||||
0x10, 0xc6, 0xed, 0x34, 0x76, 0x92, 0xc9, 0xfb, 0x56, 0x7a, 0x57, 0x7d, 0x91, 0x65, 0x55, 0x51,
|
||||
0x28, 0x07, 0x02, 0x2a, 0x46, 0x2a, 0x12, 0x20, 0xf5, 0x50, 0x48, 0xff, 0x90, 0x4a, 0x14, 0x15,
|
||||
0xa7, 0xe2, 0xc0, 0xcd, 0xb1, 0xb7, 0xc9, 0xaa, 0x8e, 0x6d, 0xd9, 0x9b, 0xd2, 0x9c, 0x38, 0x71,
|
||||
0xe0, 0x80, 0xe0, 0x88, 0xf8, 0x1c, 0x48, 0x7c, 0x05, 0x8e, 0x3d, 0x21, 0x8e, 0xd0, 0x7e, 0x11,
|
||||
0x34, 0x6b, 0xc7, 0x76, 0xa3, 0x28, 0xb1, 0x44, 0x6f, 0xdd, 0xed, 0xfc, 0x9e, 0x7d, 0x66, 0x77,
|
||||
0x66, 0x62, 0xf8, 0xd7, 0x1e, 0x58, 0x5e, 0x9f, 0x46, 0x46, 0x10, 0xfa, 0xdc, 0x27, 0x15, 0xcb,
|
||||
0x1b, 0xf3, 0x71, 0x40, 0xf5, 0x7f, 0x86, 0xbe, 0x43, 0xdd, 0x64, 0x7b, 0xed, 0xe3, 0x7f, 0xa0,
|
||||
0x6e, 0x8b, 0x40, 0xfd, 0x37, 0x80, 0xd2, 0x76, 0x7d, 0xfb, 0x44, 0x7f, 0x04, 0xea, 0x1e, 0xa3,
|
||||
0xae, 0x13, 0x91, 0x7b, 0xa0, 0x1e, 0x8b, 0xbf, 0x34, 0xb9, 0x29, 0xb7, 0xea, 0x1b, 0xff, 0x1b,
|
||||
0x89, 0x8c, 0x71, 0x80, 0x2a, 0x46, 0x97, 0x87, 0x23, 0x9b, 0x9b, 0x49, 0x90, 0xfe, 0x12, 0xea,
|
||||
0x87, 0x34, 0x1c, 0xb2, 0x28, 0x62, 0xbe, 0x17, 0x91, 0x36, 0xd4, 0x83, 0x6c, 0x99, 0x48, 0x34,
|
||||
0xa7, 0x24, 0xc4, 0x91, 0x46, 0x0e, 0x33, 0xf3, 0x90, 0x7e, 0x1f, 0xea, 0xdb, 0x03, 0xe6, 0x3a,
|
||||
0x21, 0xf5, 0xf6, 0x9d, 0x88, 0x34, 0xa1, 0x6e, 0x67, 0x4b, 0x4d, 0x6e, 0x2e, 0xb5, 0x6a, 0x66,
|
||||
0x7e, 0x4b, 0xff, 0x52, 0x83, 0xca, 0xb6, 0xef, 0x71, 0xea, 0x71, 0xfd, 0x2d, 0x94, 0x0f, 0xad,
|
||||
0x3e, 0x25, 0x5b, 0xa0, 0x44, 0x7c, 0xec, 0x52, 0x61, 0x61, 0x79, 0xe3, 0xf6, 0x4c, 0x0b, 0x09,
|
||||
0x64, 0x20, 0x61, 0x74, 0x31, 0xbc, 0x23, 0x99, 0x31, 0x47, 0xd6, 0x41, 0xe9, 0x61, 0x90, 0x56,
|
||||
0x12, 0x39, 0xac, 0xcc, 0x12, 0xc0, 0x68, 0x11, 0xd4, 0xae, 0x82, 0x1a, 0x5f, 0xbe, 0xfe, 0x5e,
|
||||
0x86, 0xda, 0x8e, 0x15, 0x0d, 0x7a, 0xbe, 0x15, 0x3a, 0x64, 0xe7, 0xaa, 0x8d, 0xf5, 0xb9, 0x36,
|
||||
0x52, 0xec, 0xba, 0xbc, 0x7c, 0x95, 0xa1, 0xbc, 0xc7, 0x5c, 0x4a, 0x74, 0xa8, 0xd8, 0xf1, 0x21,
|
||||
0xc2, 0x48, 0xad, 0x23, 0x99, 0x93, 0x8d, 0xf8, 0xa6, 0x2c, 0x4e, 0x85, 0xf8, 0xa2, 0x9b, 0x42,
|
||||
0x35, 0xa3, 0x8b, 0xe1, 0xb1, 0x3b, 0x8b, 0x53, 0xb2, 0x0b, 0x95, 0x20, 0xa4, 0xa7, 0x8c, 0xbe,
|
||||
0xd1, 0x96, 0x84, 0xbf, 0x3b, 0x8b, 0x25, 0x0e, 0x63, 0x00, 0x7d, 0x24, 0x6c, 0xce, 0xf6, 0x37,
|
||||
0x19, 0x94, 0xfd, 0x21, 0xbe, 0xe2, 0x3c, 0xdf, 0x4f, 0xae, 0xfa, 0x6e, 0xcd, 0x3d, 0x54, 0xc8,
|
||||
0x4d, 0x1b, 0xdf, 0x9b, 0x36, 0x7e, 0xb7, 0x80, 0xc6, 0x42, 0xe7, 0xaf, 0x98, 0x43, 0xfd, 0xeb,
|
||||
0x73, 0x2e, 0xe4, 0xfe, 0xd2, 0x79, 0xac, 0x31, 0xd7, 0xf9, 0x8f, 0x12, 0x94, 0x8f, 0xe8, 0x19,
|
||||
0x27, 0x2b, 0x50, 0xe6, 0xf4, 0x2c, 0x73, 0x2d, 0x56, 0x59, 0x3b, 0x15, 0x29, 0x12, 0xd4, 0x99,
|
||||
0x2e, 0xe1, 0x2d, 0x50, 0x86, 0x56, 0x78, 0x12, 0x25, 0x7e, 0x0b, 0x08, 0x1c, 0x60, 0x38, 0x0a,
|
||||
0x08, 0x8e, 0x34, 0x01, 0xb8, 0xdf, 0xef, 0xbb, 0xd4, 0xea, 0xb9, 0x54, 0x2b, 0x37, 0xe5, 0x56,
|
||||
0xb5, 0x23, 0x99, 0xb9, 0x3d, 0xf2, 0x02, 0x00, 0x43, 0x69, 0x78, 0x34, 0x0e, 0xa8, 0xa6, 0x14,
|
||||
0x68, 0xb8, 0xf4, 0x9c, 0x98, 0x41, 0xbd, 0x4c, 0x81, 0x34, 0xa0, 0x66, 0x0f, 0xa8, 0x7d, 0x22,
|
||||
0x0e, 0x54, 0x93, 0x03, 0xb3, 0x2d, 0xf1, 0xc4, 0xb8, 0xa0, 0x8e, 0x56, 0x49, 0xfe, 0x3b, 0xd9,
|
||||
0xc8, 0x5d, 0xec, 0x67, 0x05, 0xd4, 0x2e, 0xf3, 0xfa, 0x2e, 0xd5, 0x3f, 0x28, 0x00, 0xc2, 0x40,
|
||||
0xf4, 0x9c, 0x45, 0x9c, 0x2c, 0x43, 0x89, 0x39, 0xc9, 0x3c, 0x2b, 0x31, 0x87, 0x18, 0xa0, 0x5a,
|
||||
0x23, 0x3e, 0xf0, 0xc3, 0xa4, 0xcd, 0x6f, 0x4c, 0x79, 0x7f, 0x6a, 0xdb, 0xfe, 0xc8, 0xe3, 0x66,
|
||||
0x12, 0x45, 0x1e, 0x27, 0x2f, 0x15, 0xdf, 0xe8, 0x5a, 0x1a, 0x1d, 0x0f, 0xf7, 0x19, 0xa9, 0xa6,
|
||||
0xaf, 0xf9, 0x30, 0x9d, 0xf1, 0x65, 0xc1, 0xae, 0xce, 0x66, 0xe3, 0x5f, 0x84, 0x8e, 0x34, 0x19,
|
||||
0xf6, 0x64, 0x17, 0xea, 0x41, 0x48, 0xd3, 0xe9, 0xae, 0x08, 0xf8, 0xe6, 0x6c, 0x38, 0x37, 0xde,
|
||||
0x3b, 0x92, 0x99, 0xe7, 0x50, 0x26, 0x3f, 0xd1, 0xd5, 0x79, 0x32, 0xb9, 0x5f, 0x02, 0x94, 0xc9,
|
||||
0x71, 0x98, 0x7f, 0x60, 0xf5, 0xa9, 0xb8, 0xfc, 0x85, 0xf9, 0xe3, 0x88, 0xc7, 0xfc, 0x91, 0x20,
|
||||
0xcf, 0xa0, 0xe6, 0x4c, 0x66, 0xad, 0x56, 0x9d, 0x2a, 0xc8, 0x99, 0x78, 0x3a, 0x9a, 0xb1, 0x04,
|
||||
0x52, 0x96, 0x6c, 0x82, 0x72, 0x8a, 0xbd, 0xa5, 0xd5, 0x84, 0xc8, 0xad, 0xf9, 0x22, 0xa2, 0x0d,
|
||||
0xb1, 0xa2, 0x05, 0x83, 0x30, 0xc3, 0x91, 0xa2, 0x41, 0x11, 0x58, 0x4c, 0x1f, 0x84, 0x05, 0x83,
|
||||
0xc9, 0x1f, 0x33, 0x97, 0x6a, 0xf5, 0x22, 0xc9, 0xe3, 0xc8, 0xc5, 0xe4, 0x91, 0xc8, 0x95, 0xe6,
|
||||
0x3b, 0x19, 0xaa, 0x07, 0x23, 0x97, 0xb3, 0xc0, 0xa5, 0xfa, 0xf8, 0x4a, 0x6d, 0x66, 0xb5, 0x28,
|
||||
0x17, 0xaa, 0xc5, 0x4d, 0xec, 0x05, 0xf1, 0xf1, 0xa1, 0x95, 0x9a, 0x4b, 0xb3, 0x9e, 0x33, 0xee,
|
||||
0x01, 0x23, 0x3b, 0xc3, 0x9c, 0x10, 0xed, 0xd5, 0xef, 0x17, 0x0d, 0xf9, 0xfc, 0xa2, 0x21, 0xff,
|
||||
0xba, 0x68, 0xc8, 0x9f, 0x2e, 0x1b, 0xd2, 0xf9, 0x65, 0x43, 0xfa, 0x79, 0xd9, 0x90, 0x5e, 0x97,
|
||||
0x82, 0x5e, 0x4f, 0x15, 0x9f, 0x2d, 0x0f, 0xfe, 0x04, 0x00, 0x00, 0xff, 0xff, 0x17, 0x7a, 0x26,
|
||||
0x2c, 0xde, 0x08, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (m *Change) Marshal() (dAtA []byte, err error) {
|
||||
|
@ -1981,6 +2007,18 @@ func (m *ChangeSingleBlocksList) MarshalToSizedBuffer(dAtA []byte) (int, error)
|
|||
}
|
||||
}
|
||||
}
|
||||
if m.Author != nil {
|
||||
{
|
||||
size, err := m.Author.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintChanges(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x12
|
||||
}
|
||||
if len(m.Id) > 0 {
|
||||
for iNdEx := len(m.Id) - 1; iNdEx >= 0; iNdEx-- {
|
||||
i -= len(m.Id[iNdEx])
|
||||
|
@ -2010,7 +2048,7 @@ func (m *ChangeSingleBlocksListChangeOfText) MarshalToSizedBuffer(dAtA []byte) (
|
|||
i = encodeVarintChanges(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x12
|
||||
dAtA[i] = 0x1a
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
@ -2031,7 +2069,7 @@ func (m *ChangeSingleBlocksListChangeOfFields) MarshalToSizedBuffer(dAtA []byte)
|
|||
i = encodeVarintChanges(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x1a
|
||||
dAtA[i] = 0x22
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
@ -2052,7 +2090,7 @@ func (m *ChangeSingleBlocksListChangeOfPremissions) MarshalToSizedBuffer(dAtA []
|
|||
i = encodeVarintChanges(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x22
|
||||
dAtA[i] = 0x2a
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
@ -2073,7 +2111,7 @@ func (m *ChangeSingleBlocksListChangeOfChildrenIds) MarshalToSizedBuffer(dAtA []
|
|||
i = encodeVarintChanges(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x2a
|
||||
dAtA[i] = 0x32
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
@ -2094,7 +2132,7 @@ func (m *ChangeSingleBlocksListChangeOfPage) MarshalToSizedBuffer(dAtA []byte) (
|
|||
i = encodeVarintChanges(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x32
|
||||
dAtA[i] = 0x3a
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
@ -2115,7 +2153,7 @@ func (m *ChangeSingleBlocksListChangeOfDashboard) MarshalToSizedBuffer(dAtA []by
|
|||
i = encodeVarintChanges(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x3a
|
||||
dAtA[i] = 0x42
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
@ -2136,7 +2174,7 @@ func (m *ChangeSingleBlocksListChangeOfVideo) MarshalToSizedBuffer(dAtA []byte)
|
|||
i = encodeVarintChanges(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x42
|
||||
dAtA[i] = 0x4a
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
@ -2157,7 +2195,7 @@ func (m *ChangeSingleBlocksListChangeOfImage) MarshalToSizedBuffer(dAtA []byte)
|
|||
i = encodeVarintChanges(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x4a
|
||||
dAtA[i] = 0x52
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
@ -2178,7 +2216,7 @@ func (m *ChangeSingleBlocksListChangeOfFile) MarshalToSizedBuffer(dAtA []byte) (
|
|||
i = encodeVarintChanges(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x52
|
||||
dAtA[i] = 0x5a
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
@ -2236,9 +2274,21 @@ func (m *ChangeMultipleBlocksList) MarshalToSizedBuffer(dAtA []byte) (int, error
|
|||
i = encodeVarintChanges(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
dAtA[i] = 0x12
|
||||
}
|
||||
}
|
||||
if m.Author != nil {
|
||||
{
|
||||
size, err := m.Author.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintChanges(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
|
@ -2616,6 +2666,10 @@ func (m *ChangeSingleBlocksList) Size() (n int) {
|
|||
n += 1 + l + sovChanges(uint64(l))
|
||||
}
|
||||
}
|
||||
if m.Author != nil {
|
||||
l = m.Author.Size()
|
||||
n += 1 + l + sovChanges(uint64(l))
|
||||
}
|
||||
if m.Change != nil {
|
||||
n += m.Change.Size()
|
||||
}
|
||||
|
@ -2745,6 +2799,10 @@ func (m *ChangeMultipleBlocksList) Size() (n int) {
|
|||
}
|
||||
var l int
|
||||
_ = l
|
||||
if m.Author != nil {
|
||||
l = m.Author.Size()
|
||||
n += 1 + l + sovChanges(uint64(l))
|
||||
}
|
||||
if len(m.Changes) > 0 {
|
||||
for _, e := range m.Changes {
|
||||
l = e.Size()
|
||||
|
@ -4156,6 +4214,42 @@ func (m *ChangeSingleBlocksList) Unmarshal(dAtA []byte) error {
|
|||
m.Id = append(m.Id, string(dAtA[iNdEx:postIndex]))
|
||||
iNdEx = postIndex
|
||||
case 2:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Author", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowChanges
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthChanges
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthChanges
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
if m.Author == nil {
|
||||
m.Author = &ModelAccount{}
|
||||
}
|
||||
if err := m.Author.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 3:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Text", wireType)
|
||||
}
|
||||
|
@ -4190,7 +4284,7 @@ func (m *ChangeSingleBlocksList) Unmarshal(dAtA []byte) error {
|
|||
}
|
||||
m.Change = &ChangeSingleBlocksListChangeOfText{v}
|
||||
iNdEx = postIndex
|
||||
case 3:
|
||||
case 4:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Fields", wireType)
|
||||
}
|
||||
|
@ -4225,7 +4319,7 @@ func (m *ChangeSingleBlocksList) Unmarshal(dAtA []byte) error {
|
|||
}
|
||||
m.Change = &ChangeSingleBlocksListChangeOfFields{v}
|
||||
iNdEx = postIndex
|
||||
case 4:
|
||||
case 5:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Premissions", wireType)
|
||||
}
|
||||
|
@ -4260,7 +4354,7 @@ func (m *ChangeSingleBlocksList) Unmarshal(dAtA []byte) error {
|
|||
}
|
||||
m.Change = &ChangeSingleBlocksListChangeOfPremissions{v}
|
||||
iNdEx = postIndex
|
||||
case 5:
|
||||
case 6:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field ChildrenIds", wireType)
|
||||
}
|
||||
|
@ -4295,7 +4389,7 @@ func (m *ChangeSingleBlocksList) Unmarshal(dAtA []byte) error {
|
|||
}
|
||||
m.Change = &ChangeSingleBlocksListChangeOfChildrenIds{v}
|
||||
iNdEx = postIndex
|
||||
case 6:
|
||||
case 7:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Page", wireType)
|
||||
}
|
||||
|
@ -4330,7 +4424,7 @@ func (m *ChangeSingleBlocksList) Unmarshal(dAtA []byte) error {
|
|||
}
|
||||
m.Change = &ChangeSingleBlocksListChangeOfPage{v}
|
||||
iNdEx = postIndex
|
||||
case 7:
|
||||
case 8:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Dashboard", wireType)
|
||||
}
|
||||
|
@ -4365,7 +4459,7 @@ func (m *ChangeSingleBlocksList) Unmarshal(dAtA []byte) error {
|
|||
}
|
||||
m.Change = &ChangeSingleBlocksListChangeOfDashboard{v}
|
||||
iNdEx = postIndex
|
||||
case 8:
|
||||
case 9:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Video", wireType)
|
||||
}
|
||||
|
@ -4400,7 +4494,7 @@ func (m *ChangeSingleBlocksList) Unmarshal(dAtA []byte) error {
|
|||
}
|
||||
m.Change = &ChangeSingleBlocksListChangeOfVideo{v}
|
||||
iNdEx = postIndex
|
||||
case 9:
|
||||
case 10:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType)
|
||||
}
|
||||
|
@ -4435,7 +4529,7 @@ func (m *ChangeSingleBlocksList) Unmarshal(dAtA []byte) error {
|
|||
}
|
||||
m.Change = &ChangeSingleBlocksListChangeOfImage{v}
|
||||
iNdEx = postIndex
|
||||
case 10:
|
||||
case 11:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field File", wireType)
|
||||
}
|
||||
|
@ -4577,6 +4671,42 @@ func (m *ChangeMultipleBlocksList) Unmarshal(dAtA []byte) error {
|
|||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Author", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowChanges
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthChanges
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthChanges
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
if m.Author == nil {
|
||||
m.Author = &ModelAccount{}
|
||||
}
|
||||
if err := m.Author.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 2:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Changes", wireType)
|
||||
}
|
||||
|
|
3635
pb/commands.pb.go
3635
pb/commands.pb.go
File diff suppressed because it is too large
Load diff
963
pb/events.pb.go
963
pb/events.pb.go
File diff suppressed because it is too large
Load diff
799
pb/models.pb.go
799
pb/models.pb.go
File diff suppressed because it is too large
Load diff
|
@ -3,7 +3,13 @@ package anytype;
|
|||
option go_package = "pb";
|
||||
import "models.proto";
|
||||
|
||||
/*
|
||||
* Change contains single block change or list of block changes.
|
||||
*/
|
||||
message Change {
|
||||
/*
|
||||
* Change.Block contains only one, single change for one block.
|
||||
*/
|
||||
message Block {
|
||||
message Fields {
|
||||
Model.Struct fields = 1;
|
||||
|
@ -72,26 +78,34 @@ message Change {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Change.Single contains only one, single change, but for a list of blocks.
|
||||
*/
|
||||
message Single {
|
||||
message BlocksList {
|
||||
repeated string id = 1;
|
||||
Model.Account author = 2;
|
||||
oneof change {
|
||||
Block.Content.Text text = 2;
|
||||
Block.Fields fields = 3;
|
||||
Block.Permissions premissions = 4;
|
||||
Block.ChildrenIds childrenIds = 5;
|
||||
Block.Content.Page page = 6;
|
||||
Block.Content.Dashboard dashboard = 7;
|
||||
Block.Content.Video video = 8;
|
||||
Block.Content.Image image = 9;
|
||||
Block.Content.File file = 10;
|
||||
Block.Content.Text text = 3;
|
||||
Block.Fields fields = 4;
|
||||
Block.Permissions premissions = 5;
|
||||
Block.ChildrenIds childrenIds = 6;
|
||||
Block.Content.Page page = 7;
|
||||
Block.Content.Dashboard dashboard = 8;
|
||||
Block.Content.Video video = 9;
|
||||
Block.Content.Image image = 10;
|
||||
Block.Content.File file = 11;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Change.Multiple contains array of changes, for a list of blocks each.
|
||||
*/
|
||||
message Multiple {
|
||||
message BlocksList {
|
||||
repeated Single.BlocksList changes = 1;
|
||||
Model.Account author = 1;
|
||||
repeated Single.BlocksList changes = 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,13 +5,32 @@ option go_package = "pb";
|
|||
import "models.proto";
|
||||
import "changes.proto";
|
||||
|
||||
/*
|
||||
* Rpc is a namespace, that agregates all of the service commands between client and middleware.
|
||||
* Structure: Topic > Subtopic > Subsub... > Action > (Request, Response).
|
||||
* Request – message from a client.
|
||||
* Response – message from a middleware.
|
||||
*/
|
||||
message Rpc {
|
||||
/*
|
||||
* Namespace, that agregates subtopics and actions, that relates to blocks.
|
||||
*/
|
||||
message Block {
|
||||
/*
|
||||
* Block history: switch between versions (lib context: switch block head), move forward or backward
|
||||
* **Example scenario**
|
||||
* 1. User -> MacOS Front: CMD+Z
|
||||
* 2. Front -> MW: Rpc.Block.History.Move.Request(blockId, false)
|
||||
* 3. MW -> Lib: ?? TODO
|
||||
* 4. Lib: switches current block header to a previous one
|
||||
* 5. Lib -> MW: prev version of block
|
||||
* 6. MW -> Front: BlockShow(block.prevVersion)
|
||||
*/
|
||||
message History {
|
||||
message Move {
|
||||
message Request {
|
||||
string blockId = 1;
|
||||
bool moveForward = 2;
|
||||
bool moveForward = 2; // Move direction. If true,
|
||||
}
|
||||
|
||||
message Response {
|
||||
|
@ -33,6 +52,23 @@ message Rpc {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Works with a smart blocks (block-organizers, like page, dashboard etc)
|
||||
* **Example scenario**
|
||||
* 1A. On front-end start.
|
||||
* 1. Front -> MW: Rpc.Block.Open.Request(dashboard.id)
|
||||
* 2. MW -> Front: BlockShow(dashboard)
|
||||
* 3. MW -> Front: Rpc.Block.Open.Response(err)
|
||||
* 1B. User clicks on a page icon on the dashboard.
|
||||
* 1. Front -> MW: Rpc.Block.Close.Request(dashboard.id)
|
||||
* Get close response first, then open request:
|
||||
* 2. MW -> Front: Rpc.Block.Close.Response(err)
|
||||
* 3. Front -> MW: Rpc.Block.Open.Request(page.id)
|
||||
* 4. MW -> Front: BlockShow(<page, blocks>)
|
||||
* 5. MW -> Front: Rpc.Block.Open.Response(err)
|
||||
* Image/Video/File blocks then:
|
||||
* 6. MW -> Front: BlockShow(<blocks>)
|
||||
*/
|
||||
message Open {
|
||||
message Request {
|
||||
string id = 1;
|
||||
|
@ -55,6 +91,21 @@ message Rpc {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Create a Smart/Internal block. Request can contain a block with a content, or it can be an empty block with a specific block.content.
|
||||
* **Example scenario**
|
||||
* 1A. Create Page on a dashboard
|
||||
* 1. Front -> MW: Rpc.Block.Create.Request(targetId:dashboard.id, position:after, block: emtpy block with page content and id = "")
|
||||
* 2. Front -> MW: Rpc.Block.Close.Request(block: dashboard.id)
|
||||
* 3. Front <- MW: Rpc.Block.Close.Response(err)
|
||||
* 4. Front <- MW: Rpc.Block.Create.Response(page.id)
|
||||
* 5. Front <- MW: Rpc.Block.Open.Response(err)
|
||||
* 6. Front <- MW: Event.Block.Show(page)
|
||||
* 1B. Create Page on a Page
|
||||
* 1. Front -> MW: Rpc.Block.Create.Request(targetId:dashboard.id, position:after, block: emtpy block with page content and id = "")
|
||||
* 2. Front <- MW: Rpc.Block.Create.Response(newPage.id)
|
||||
* 3. Front <- MW: Event.Block.Show(newPage)
|
||||
*/
|
||||
message Create {
|
||||
message Request {
|
||||
Model.Block block = 1;
|
||||
|
@ -64,6 +115,7 @@ message Rpc {
|
|||
|
||||
message Response {
|
||||
Error error = 1;
|
||||
string blockId = 2;
|
||||
|
||||
message Error {
|
||||
Code code = 1;
|
||||
|
@ -79,6 +131,22 @@ message Rpc {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Update a Smart/Internal block. Request can contain a content/field/permission/children update
|
||||
* **Example scenarios**
|
||||
* Case A. Update text block on page
|
||||
* 1. TODO
|
||||
* Case B. Update page on dashboard
|
||||
* 1. TODO
|
||||
* Case C. Update page on page
|
||||
* 1. TODO
|
||||
* Case D. Update page permission on a dashboard
|
||||
* 1. TODO
|
||||
* Case E. Update page children of the same page
|
||||
* 1. TODO
|
||||
* Case F. Update children of a layout block on a page
|
||||
* 1. TODO
|
||||
*/
|
||||
message Update {
|
||||
message Request {
|
||||
Change.Multiple.BlocksList changes = 1;
|
||||
|
@ -100,8 +168,37 @@ message Rpc {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Block.Close – it means unsubscribe from a block.
|
||||
* Precondition: block should be opened.
|
||||
*/
|
||||
message Close {
|
||||
message Request {
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message Response {
|
||||
Error error = 1;
|
||||
|
||||
message Error {
|
||||
Code code = 1;
|
||||
string description = 2;
|
||||
|
||||
enum Code {
|
||||
NULL = 0;
|
||||
UNKNOWN_ERROR = 1;
|
||||
BAD_INPUT = 2;
|
||||
// ...
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Namespace, that agregates subtopics and actions, that relates to wallet.
|
||||
*/
|
||||
message Wallet {
|
||||
message Create {
|
||||
/**
|
||||
|
@ -164,6 +261,9 @@ message Rpc {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Namespace, that agregates subtopics and actions, that relates to account.
|
||||
*/
|
||||
message Account {
|
||||
message Create {
|
||||
/**
|
||||
|
@ -270,32 +370,10 @@ message Rpc {
|
|||
}
|
||||
}
|
||||
|
||||
message Version {
|
||||
message Get {
|
||||
message Request {}
|
||||
|
||||
message Response {
|
||||
Error error = 1;
|
||||
string version = 2;
|
||||
|
||||
message Error {
|
||||
Code code = 1;
|
||||
string description = 2;
|
||||
|
||||
enum Code {
|
||||
NULL = 0;
|
||||
UNKNOWN_ERROR = 1;
|
||||
BAD_INPUT = 2;
|
||||
VERSION_IS_EMPTY = 3;
|
||||
|
||||
NOT_FOUND = 101;
|
||||
TIMEOUT = 102;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Namespace, that agregates log subtopics and actions.
|
||||
* Usage: send request with topic (Level) and description (message) from client to middleware to log.
|
||||
*/
|
||||
message Log {
|
||||
message Send {
|
||||
message Request {
|
||||
|
@ -332,9 +410,42 @@ message Rpc {
|
|||
}
|
||||
}
|
||||
|
||||
message Ipfs {
|
||||
/*
|
||||
* Get info about a version of a middleware.
|
||||
* Info is a string, that contains: BuildDate, GitCommit, GitBranch, GitState
|
||||
*/
|
||||
message Version {
|
||||
message Get {
|
||||
message File {
|
||||
message Request {}
|
||||
|
||||
message Response {
|
||||
Error error = 1;
|
||||
string version = 2; // BuildDate, GitCommit, GitBranch, GitState
|
||||
|
||||
message Error {
|
||||
Code code = 1;
|
||||
string description = 2;
|
||||
|
||||
enum Code {
|
||||
NULL = 0;
|
||||
UNKNOWN_ERROR = 1;
|
||||
BAD_INPUT = 2;
|
||||
VERSION_IS_EMPTY = 3;
|
||||
|
||||
NOT_FOUND = 101;
|
||||
TIMEOUT = 102;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Namespace, that agregates subtopics and actions to work with IPFS directly (get files, blobs, images, etc)
|
||||
*/
|
||||
message Ipfs {
|
||||
message File {
|
||||
message Get {
|
||||
message Request {
|
||||
string id = 1;
|
||||
}
|
||||
|
@ -361,63 +472,63 @@ message Rpc {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
message Image {
|
||||
message Get {
|
||||
message Blob {
|
||||
message Request {
|
||||
string id = 1;
|
||||
Model.Image.Size size = 2;
|
||||
message Image {
|
||||
message Get {
|
||||
message Blob {
|
||||
message Request {
|
||||
string id = 1;
|
||||
Model.Image.Size size = 2;
|
||||
}
|
||||
|
||||
message Response {
|
||||
Error error = 1;
|
||||
bytes blob = 2;
|
||||
|
||||
message Error {
|
||||
Code code = 1;
|
||||
string description = 2;
|
||||
|
||||
enum Code {
|
||||
NULL = 0;
|
||||
UNKNOWN_ERROR = 1;
|
||||
BAD_INPUT = 2;
|
||||
// ...
|
||||
|
||||
NOT_FOUND = 101;
|
||||
TIMEOUT = 102;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
message Response {
|
||||
Error error = 1;
|
||||
bytes blob = 2;
|
||||
message File {
|
||||
message Request {
|
||||
string id = 1;
|
||||
Model.Image.Size size = 2;
|
||||
}
|
||||
|
||||
message Error {
|
||||
Code code = 1;
|
||||
string description = 2;
|
||||
message Response {
|
||||
Error error = 1;
|
||||
string localPath = 2;
|
||||
|
||||
enum Code {
|
||||
NULL = 0;
|
||||
UNKNOWN_ERROR = 1;
|
||||
BAD_INPUT = 2;
|
||||
// ...
|
||||
message Error {
|
||||
Code code = 1;
|
||||
string description = 2;
|
||||
|
||||
NOT_FOUND = 101;
|
||||
TIMEOUT = 102;
|
||||
enum Code {
|
||||
NULL = 0;
|
||||
UNKNOWN_ERROR = 1;
|
||||
BAD_INPUT = 2;
|
||||
// ...
|
||||
|
||||
NOT_FOUND = 101;
|
||||
TIMEOUT = 102;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
message File {
|
||||
message Request {
|
||||
string id = 1;
|
||||
Model.Image.Size size = 2;
|
||||
}
|
||||
|
||||
message Response {
|
||||
Error error = 1;
|
||||
string localPath = 2;
|
||||
|
||||
message Error {
|
||||
Code code = 1;
|
||||
string description = 2;
|
||||
|
||||
enum Code {
|
||||
NULL = 0;
|
||||
UNKNOWN_ERROR = 1;
|
||||
BAD_INPUT = 2;
|
||||
// ...
|
||||
|
||||
NOT_FOUND = 101;
|
||||
TIMEOUT = 102;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,19 +5,23 @@ option go_package = "pb";
|
|||
import "models.proto";
|
||||
import "changes.proto";
|
||||
|
||||
/*
|
||||
* Event – type of message, that could be sent from a middleware to the corresponding front-end.
|
||||
*/
|
||||
message Event {
|
||||
oneof message {
|
||||
Account.Show accountShow = 1; // show wallet's accounts that were loaded from local or remote source
|
||||
Block.Show blockShow = 2;
|
||||
Block.Update blockUpdate = 3;
|
||||
Block.Create blockCreate = 4;
|
||||
Block.Add blockAdd = 2;
|
||||
Block.ShowFullscreen blockShowFullscreen = 3;
|
||||
Block.Update blockUpdate = 4;
|
||||
Block.Delete blockDelete = 5;
|
||||
|
||||
User.Block.TextRange userBlockTextRange = 5;
|
||||
User.Block.Join userBlockJoin = 6;
|
||||
User.Block.Left userBlockLeft = 7;
|
||||
User.Block.SelectRange userBlockSelectRange = 8;
|
||||
User.Block.TextRange userBlockTextRange = 6;
|
||||
User.Block.Join userBlockJoin = 7;
|
||||
User.Block.Left userBlockLeft = 8;
|
||||
User.Block.SelectRange userBlockSelectRange = 9;
|
||||
|
||||
Block.FilesUpload filesUpload = 9;
|
||||
Block.FilesUpload filesUpload = 10;
|
||||
}
|
||||
|
||||
message Account {
|
||||
|
@ -29,20 +33,41 @@ message Event {
|
|||
Model.Account account = 2; // An Account, that has been found for the mnemonic
|
||||
}
|
||||
}
|
||||
|
||||
message Block {
|
||||
message Show {
|
||||
Model.Block block = 1;
|
||||
/*
|
||||
* Event to show internal blocks on a client.
|
||||
* Example Scenarios
|
||||
* A. Block Creation
|
||||
* 1. Block A have been created on a client C1
|
||||
* 2. Client C2 receives Event.Block.Add(Block A), Event.Block.Update(Page.children)
|
||||
* B. Partial block load
|
||||
* 1. Client C1 opens Page1, that contains, for example, 133 blocks.
|
||||
* 2. M -> F: ShowFullScreen(Root, blocks1-50)
|
||||
* 3. M -> F: Block.Add(blocks51-100)
|
||||
* 3. M -> F: Block.Add(blocks101-133)
|
||||
*/
|
||||
message Add {
|
||||
repeated Model.Block blocks = 1; // id -> block
|
||||
}
|
||||
|
||||
/*
|
||||
* Works with a smart blocks: Page, Dashboard
|
||||
* Dashboard opened, click on a page, Rpc.Block.open, Block.ShowFullscreen(PageBlock)
|
||||
*/
|
||||
message ShowFullscreen {
|
||||
string rootId = 1; // Root block id
|
||||
repeated Model.Block blocks = 2; // children of the root block
|
||||
}
|
||||
|
||||
/*
|
||||
* Updates from different clients, or from the local middleware
|
||||
* Example scenarios:
|
||||
* Page opened, TextBlock updated on a different client, BlockUpdate(changes)
|
||||
*/
|
||||
message Update {
|
||||
Change.Multiple.BlocksList changes = 1;
|
||||
}
|
||||
|
||||
message Create {
|
||||
Model.Block block = 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Middleware to front end event message, that will be sent on one of this scenarios:
|
||||
* Precondition: user A opened a block
|
||||
|
@ -52,7 +77,14 @@ message Event {
|
|||
message FilesUpload {
|
||||
repeated string filePath = 1; // filepaths to the files
|
||||
string blockId = 2; // if empty => create new blocks
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
message Delete {
|
||||
string blockId = 1;
|
||||
}
|
||||
}
|
||||
|
||||
message User {
|
||||
|
|
|
@ -37,6 +37,10 @@ message Model {
|
|||
}
|
||||
|
||||
message Content {
|
||||
/*
|
||||
* Layout have no visual representation, but affects on blocks, that it contains.
|
||||
* Row/Column layout blocks creates only automatically, after some of a D&D operations, for example
|
||||
*/
|
||||
message Layout {
|
||||
Style style = 1;
|
||||
|
||||
|
@ -46,12 +50,22 @@ message Model {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Divider: block, that contains only one horizontal thin line
|
||||
*/
|
||||
message Div {}
|
||||
|
||||
/*
|
||||
* Bookmark is to keep a web-link and to preview a content.
|
||||
*/
|
||||
message Bookmark {
|
||||
// Model.Link.Preview preview = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Block type to organize pages on the main screen (main purpose)
|
||||
* It also can be mounted on a page.
|
||||
*/
|
||||
message Dashboard {
|
||||
enum Style {
|
||||
MAIN_SCREEN = 0;
|
||||
|
@ -66,6 +80,34 @@ message Model {
|
|||
}
|
||||
|
||||
message Text {
|
||||
string text = 1;
|
||||
Style style = 2;
|
||||
Marks marksList = 3; // list of marks to apply to the text
|
||||
|
||||
bool toggleable = 4; // can be toggled or not
|
||||
MarkerType markerType = 5; // if no – it's not a list. If number/bullet – it should be a list with its list-siblings.
|
||||
|
||||
bool checkable = 6; // can be checked or not
|
||||
bool checked = 7;
|
||||
|
||||
message Mark {
|
||||
Range range = 1; // range of symbols to apply this mark. From(symbol) To(symbol)
|
||||
Type type = 2;
|
||||
string param = 3; // link, color, etc
|
||||
|
||||
enum Type {
|
||||
STRIKETHROUGH = 0;
|
||||
KEYBOARD = 1;
|
||||
ITALIC = 2;
|
||||
BOLD = 3;
|
||||
LINK = 4;
|
||||
}
|
||||
}
|
||||
|
||||
message Marks {
|
||||
repeated Mark marks = 1;
|
||||
}
|
||||
|
||||
enum Style {
|
||||
p = 0;
|
||||
h1 = 1;
|
||||
|
@ -81,35 +123,6 @@ message Model {
|
|||
number = 1;
|
||||
bullet = 2;
|
||||
}
|
||||
|
||||
message Marks {
|
||||
repeated Mark marks = 1;
|
||||
}
|
||||
|
||||
message Mark {
|
||||
|
||||
enum Type {
|
||||
STRIKETHROUGH = 0;
|
||||
KEYBOARD = 1;
|
||||
ITALIC = 2;
|
||||
BOLD = 3;
|
||||
LINK = 4;
|
||||
}
|
||||
|
||||
Range range = 1;
|
||||
Type type = 2;
|
||||
string param = 3; // link, color, etc
|
||||
}
|
||||
|
||||
string text = 1;
|
||||
Style style = 2;
|
||||
Marks marksList = 3;
|
||||
|
||||
bool toggleable = 4;
|
||||
MarkerType markerType = 5;
|
||||
|
||||
bool checkable = 6;
|
||||
bool checked = 7;
|
||||
}
|
||||
|
||||
message Video {
|
||||
|
@ -118,17 +131,17 @@ message Model {
|
|||
Preview preview = 3;
|
||||
|
||||
message Preview {
|
||||
bytes thumbnail = 1;
|
||||
string name = 2;
|
||||
string name = 1;
|
||||
string icon = 2;
|
||||
int32 width = 3;
|
||||
}
|
||||
|
||||
enum State {
|
||||
EMPTY = 0;
|
||||
UPLOADING = 1;
|
||||
PREVIEW = 2;
|
||||
DOWNLOADING = 3;
|
||||
DONE = 4;
|
||||
EMPTY = 0; // There is no video and preview, it's an empty block, that waits videos.
|
||||
UPLOADING = 1; // There is stil no video/preview, but video already uploading
|
||||
PREVIEW = 2; // Video exists, preview downloaded, but video – not.
|
||||
DOWNLOADING = 3; // Video exists, preview downloaded, but video downloading
|
||||
DONE = 4; // Video and preview downloaded
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -138,24 +151,24 @@ message Model {
|
|||
Preview preview = 3;
|
||||
|
||||
message Preview {
|
||||
bytes thumbnail = 1;
|
||||
string name = 2;
|
||||
string name = 1;
|
||||
string icon = 2;
|
||||
int32 width = 3;
|
||||
}
|
||||
|
||||
enum State {
|
||||
EMPTY = 0;
|
||||
UPLOADING = 1;
|
||||
PREVIEW = 2;
|
||||
DOWNLOADING = 3;
|
||||
DONE = 4;
|
||||
EMPTY = 0; // There is no image and preview, it's an empty block, that waits image.
|
||||
UPLOADING = 1; // There is stil no image/preview, but image already uploading
|
||||
PREVIEW = 2; // Image exists, preview downloaded, but image – not.
|
||||
DOWNLOADING = 3; // Image exists, preview downloaded, but image downloading
|
||||
DONE = 4; // Image and preview downloaded
|
||||
}
|
||||
}
|
||||
|
||||
message File {
|
||||
string localFilePath = 1;
|
||||
string localFilePath = 1; // Path to the file on a local machine
|
||||
State state = 2;
|
||||
Preview preview = 3;
|
||||
Preview preview = 3; // Content to show before the main content is downladed
|
||||
|
||||
message Preview {
|
||||
string name = 1;
|
||||
|
@ -163,20 +176,20 @@ message Model {
|
|||
}
|
||||
|
||||
enum State {
|
||||
EMPTY = 0;
|
||||
UPLOADING = 1;
|
||||
PREVIEW = 2;
|
||||
DOWNLOADING = 3;
|
||||
DONE = 4;
|
||||
EMPTY = 0; // There is no file and preview, it's an empty block, that waits files.
|
||||
UPLOADING = 1; // There is stil no file/preview, but file already uploading
|
||||
PREVIEW = 2; // File exists, preview downloaded, but file – not.
|
||||
DOWNLOADING = 3; // File exists, preview downloaded, but file downloading
|
||||
DONE = 4; // File and preview downloaded
|
||||
}
|
||||
}
|
||||
|
||||
message Page {
|
||||
enum Style {
|
||||
EMPTY = 0;
|
||||
TASK = 1;
|
||||
BOOKMARK = 2;
|
||||
SET = 3;
|
||||
EMPTY = 0; // Ordinary page, without additional fields
|
||||
TASK = 1; // Page with a task fields
|
||||
BOOKMARK = 2; // Page with a bookmark fields
|
||||
SET = 3; // Page, that organize a set of blocks by a specific criterio
|
||||
// ...
|
||||
}
|
||||
|
||||
|
@ -185,6 +198,9 @@ message Model {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* General purpose structure, uses in Mark.
|
||||
*/
|
||||
message Range {
|
||||
int32 from = 1;
|
||||
int32 to = 2;
|
||||
|
@ -221,7 +237,7 @@ message Model {
|
|||
}
|
||||
|
||||
/**
|
||||
* Contains basic information about user account
|
||||
* Contains basic information about a user account
|
||||
*/
|
||||
message Account {
|
||||
string id = 1; // User's thread id
|
||||
|
|
|
@ -11,7 +11,7 @@ service ClientCommands {
|
|||
rpc AccountCreate (anytype.Rpc.Account.Create.Request) returns (anytype.Rpc.Account.Create.Response);
|
||||
rpc AccountSelect (anytype.Rpc.Account.Select.Request) returns (anytype.Rpc.Account.Select.Response);
|
||||
|
||||
rpc ImageGetBlob (anytype.Rpc.Image.Get.Blob.Request) returns (anytype.Rpc.Image.Get.Blob.Response);
|
||||
rpc ImageGetBlob (anytype.Rpc.Ipfs.Image.Get.Blob.Request) returns (anytype.Rpc.Ipfs.Image.Get.Blob.Response);
|
||||
|
||||
rpc VersionGet (anytype.Rpc.Version.Get.Request) returns (anytype.Rpc.Version.Get.Response);
|
||||
rpc LogSend (anytype.Rpc.Log.Send.Request) returns (anytype.Rpc.Log.Send.Response);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue