80 lines
2.6 KiB
Go
80 lines
2.6 KiB
Go
//go:generate mockgen -destination mock_spacesyncproto/mock_spacesyncproto.go github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto DRPCSpaceClient
|
|
package spacesyncproto
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/pkg/acl/treechangeproto"
|
|
"storj.io/drpc"
|
|
)
|
|
|
|
type SpaceStream = DRPCSpace_StreamStream
|
|
|
|
type ClientFactoryFunc func(cc drpc.Conn) DRPCSpaceClient
|
|
|
|
func (c ClientFactoryFunc) Client(cc drpc.Conn) DRPCSpaceClient {
|
|
return c(cc)
|
|
}
|
|
|
|
type ClientFactory interface {
|
|
Client(cc drpc.Conn) DRPCSpaceClient
|
|
}
|
|
|
|
func WrapHeadUpdate(update *ObjectHeadUpdate, rootChange *treechangeproto.RawTreeChangeWithId, treeId, trackingId string) *ObjectSyncMessage {
|
|
return &ObjectSyncMessage{
|
|
Content: &ObjectSyncContentValue{
|
|
Value: &ObjectSyncContentValue_HeadUpdate{HeadUpdate: update},
|
|
},
|
|
RootChange: rootChange,
|
|
TreeId: treeId,
|
|
TrackingId: trackingId,
|
|
}
|
|
}
|
|
|
|
func WrapFullRequest(request *ObjectFullSyncRequest, rootChange *treechangeproto.RawTreeChangeWithId, treeId, trackingId string) *ObjectSyncMessage {
|
|
return &ObjectSyncMessage{
|
|
Content: &ObjectSyncContentValue{
|
|
Value: &ObjectSyncContentValue_FullSyncRequest{FullSyncRequest: request},
|
|
},
|
|
RootChange: rootChange,
|
|
TreeId: treeId,
|
|
TrackingId: trackingId,
|
|
}
|
|
}
|
|
|
|
func WrapFullResponse(response *ObjectFullSyncResponse, rootChange *treechangeproto.RawTreeChangeWithId, treeId, trackingId string) *ObjectSyncMessage {
|
|
return &ObjectSyncMessage{
|
|
Content: &ObjectSyncContentValue{
|
|
Value: &ObjectSyncContentValue_FullSyncResponse{FullSyncResponse: response},
|
|
},
|
|
RootChange: rootChange,
|
|
TreeId: treeId,
|
|
TrackingId: trackingId,
|
|
}
|
|
}
|
|
|
|
func WrapError(err error, rootChange *treechangeproto.RawTreeChangeWithId, treeId, trackingId string) *ObjectSyncMessage {
|
|
return &ObjectSyncMessage{
|
|
Content: &ObjectSyncContentValue{
|
|
Value: &ObjectSyncContentValue_ErrorResponse{ErrorResponse: &ObjectErrorResponse{Error: err.Error()}},
|
|
},
|
|
RootChange: rootChange,
|
|
TreeId: treeId,
|
|
TrackingId: trackingId,
|
|
}
|
|
}
|
|
|
|
func MessageDescription(msg *ObjectSyncMessage) string {
|
|
content := msg.GetContent()
|
|
switch {
|
|
case content.GetHeadUpdate() != nil:
|
|
return fmt.Sprintf("head update/%v", content.GetHeadUpdate().Heads)
|
|
case content.GetFullSyncRequest() != nil:
|
|
return fmt.Sprintf("fullsync request/%v", content.GetFullSyncRequest().Heads)
|
|
case content.GetFullSyncResponse() != nil:
|
|
return fmt.Sprintf("fullsync response/%v", content.GetFullSyncResponse().Heads)
|
|
case content.GetErrorResponse() != nil:
|
|
return fmt.Sprintf("error response/%v", content.GetErrorResponse().Error)
|
|
}
|
|
return ""
|
|
}
|