Send head notify message on object create
This commit is contained in:
parent
56f35c1a73
commit
86359af3be
@ -225,13 +225,14 @@ func (s *space) DeriveTree(ctx context.Context, payload tree.ObjectTreeCreatePay
|
||||
return
|
||||
}
|
||||
deps := synctree.CreateDeps{
|
||||
SpaceId: s.id,
|
||||
Payload: payload,
|
||||
SyncService: s.syncService,
|
||||
Configuration: s.configuration,
|
||||
AclList: s.aclList,
|
||||
SpaceStorage: s.storage,
|
||||
StatusService: s.statusService,
|
||||
SpaceId: s.id,
|
||||
Payload: payload,
|
||||
SyncService: s.syncService,
|
||||
Configuration: s.configuration,
|
||||
AclList: s.aclList,
|
||||
SpaceStorage: s.storage,
|
||||
StatusService: s.statusService,
|
||||
HeadNotifiable: s.diffService,
|
||||
}
|
||||
return synctree.DeriveSyncTree(ctx, deps)
|
||||
}
|
||||
@ -242,13 +243,14 @@ func (s *space) CreateTree(ctx context.Context, payload tree.ObjectTreeCreatePay
|
||||
return
|
||||
}
|
||||
deps := synctree.CreateDeps{
|
||||
SpaceId: s.id,
|
||||
Payload: payload,
|
||||
SyncService: s.syncService,
|
||||
Configuration: s.configuration,
|
||||
AclList: s.aclList,
|
||||
SpaceStorage: s.storage,
|
||||
StatusService: s.statusService,
|
||||
SpaceId: s.id,
|
||||
Payload: payload,
|
||||
SyncService: s.syncService,
|
||||
Configuration: s.configuration,
|
||||
AclList: s.aclList,
|
||||
SpaceStorage: s.storage,
|
||||
StatusService: s.statusService,
|
||||
HeadNotifiable: s.diffService,
|
||||
}
|
||||
return synctree.CreateSyncTree(ctx, deps)
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
// Code generated by MockGen. DO NOT EDIT.
|
||||
// Source: github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/synctree (interfaces: SyncClient,SyncTree,ReceiveQueue)
|
||||
// Source: github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/synctree (interfaces: SyncClient,SyncTree,ReceiveQueue,HeadNotifiable)
|
||||
|
||||
// Package mock_synctree is a generated GoMock package.
|
||||
package mock_synctree
|
||||
@ -519,3 +519,38 @@ func (mr *MockReceiveQueueMockRecorder) GetMessage(arg0 interface{}) *gomock.Cal
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMessage", reflect.TypeOf((*MockReceiveQueue)(nil).GetMessage), arg0)
|
||||
}
|
||||
|
||||
// MockHeadNotifiable is a mock of HeadNotifiable interface.
|
||||
type MockHeadNotifiable struct {
|
||||
ctrl *gomock.Controller
|
||||
recorder *MockHeadNotifiableMockRecorder
|
||||
}
|
||||
|
||||
// MockHeadNotifiableMockRecorder is the mock recorder for MockHeadNotifiable.
|
||||
type MockHeadNotifiableMockRecorder struct {
|
||||
mock *MockHeadNotifiable
|
||||
}
|
||||
|
||||
// NewMockHeadNotifiable creates a new mock instance.
|
||||
func NewMockHeadNotifiable(ctrl *gomock.Controller) *MockHeadNotifiable {
|
||||
mock := &MockHeadNotifiable{ctrl: ctrl}
|
||||
mock.recorder = &MockHeadNotifiableMockRecorder{mock}
|
||||
return mock
|
||||
}
|
||||
|
||||
// EXPECT returns an object that allows the caller to indicate expected use.
|
||||
func (m *MockHeadNotifiable) EXPECT() *MockHeadNotifiableMockRecorder {
|
||||
return m.recorder
|
||||
}
|
||||
|
||||
// UpdateHeads mocks base method.
|
||||
func (m *MockHeadNotifiable) UpdateHeads(arg0 string, arg1 []string) {
|
||||
m.ctrl.T.Helper()
|
||||
m.ctrl.Call(m, "UpdateHeads", arg0, arg1)
|
||||
}
|
||||
|
||||
// UpdateHeads indicates an expected call of UpdateHeads.
|
||||
func (mr *MockHeadNotifiableMockRecorder) UpdateHeads(arg0, arg1 interface{}) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateHeads", reflect.TypeOf((*MockHeadNotifiable)(nil).UpdateHeads), arg0, arg1)
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
//go:generate mockgen -destination mock_synctree/mock_synctree.go github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/synctree SyncClient,SyncTree,ReceiveQueue
|
||||
//go:generate mockgen -destination mock_synctree/mock_synctree.go github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/synctree SyncClient,SyncTree,ReceiveQueue,HeadNotifiable
|
||||
package synctree
|
||||
|
||||
import (
|
||||
|
||||
@ -57,13 +57,14 @@ var buildObjectTree = tree.BuildObjectTree
|
||||
var createSyncClient = newWrappedSyncClient
|
||||
|
||||
type CreateDeps struct {
|
||||
SpaceId string
|
||||
Payload tree.ObjectTreeCreatePayload
|
||||
Configuration nodeconf.Configuration
|
||||
SyncService syncservice.SyncService
|
||||
AclList list.ACLList
|
||||
SpaceStorage spacestorage.SpaceStorage
|
||||
StatusService statusservice.StatusService
|
||||
SpaceId string
|
||||
Payload tree.ObjectTreeCreatePayload
|
||||
Configuration nodeconf.Configuration
|
||||
SyncService syncservice.SyncService
|
||||
AclList list.ACLList
|
||||
SpaceStorage spacestorage.SpaceStorage
|
||||
StatusService statusservice.StatusService
|
||||
HeadNotifiable HeadNotifiable
|
||||
}
|
||||
|
||||
type BuildDeps struct {
|
||||
@ -101,8 +102,11 @@ func DeriveSyncTree(ctx context.Context, deps CreateDeps) (id string, err error)
|
||||
deps.Configuration)
|
||||
|
||||
id = objTree.ID()
|
||||
heads := objTree.Heads()
|
||||
|
||||
deps.HeadNotifiable.UpdateHeads(id, heads)
|
||||
headUpdate := syncClient.CreateHeadUpdate(objTree, nil)
|
||||
deps.StatusService.HeadsChange(id, objTree.Heads())
|
||||
deps.StatusService.HeadsChange(id, heads)
|
||||
syncClient.BroadcastAsync(headUpdate)
|
||||
return
|
||||
}
|
||||
@ -119,8 +123,11 @@ func CreateSyncTree(ctx context.Context, deps CreateDeps) (id string, err error)
|
||||
deps.Configuration)
|
||||
|
||||
id = objTree.ID()
|
||||
heads := objTree.Heads()
|
||||
|
||||
deps.HeadNotifiable.UpdateHeads(id, heads)
|
||||
headUpdate := syncClient.CreateHeadUpdate(objTree, nil)
|
||||
deps.StatusService.HeadsChange(id, objTree.Heads())
|
||||
deps.StatusService.HeadsChange(id, heads)
|
||||
syncClient.BroadcastAsync(headUpdate)
|
||||
return
|
||||
}
|
||||
|
||||
@ -53,6 +53,7 @@ func Test_DeriveSyncTree(t *testing.T) {
|
||||
aclListMock := mock_list.NewMockACLList(ctrl)
|
||||
objTreeMock := newTestObjMock(mock_tree.NewMockObjectTree(ctrl))
|
||||
spaceStorageMock := mock_storage.NewMockSpaceStorage(ctrl)
|
||||
headNotifiableMock := mock_synctree.NewMockHeadNotifiable(ctrl)
|
||||
spaceId := "spaceId"
|
||||
expectedPayload := tree.ObjectTreeCreatePayload{SpaceId: spaceId}
|
||||
createDerivedObjectTree = func(payload tree.ObjectTreeCreatePayload, l list.ACLList, create storage2.TreeStorageCreatorFunc) (objTree tree.ObjectTree, err error) {
|
||||
@ -63,14 +64,16 @@ func Test_DeriveSyncTree(t *testing.T) {
|
||||
createSyncClient = syncClientFuncCreator(syncClientMock)
|
||||
headUpdate := &treechangeproto.TreeSyncMessage{}
|
||||
objTreeMock.EXPECT().Heads().AnyTimes().Return([]string{"h1"})
|
||||
headNotifiableMock.EXPECT().UpdateHeads("id", []string{"h1"})
|
||||
syncClientMock.EXPECT().CreateHeadUpdate(gomock.Any(), gomock.Nil()).Return(headUpdate)
|
||||
syncClientMock.EXPECT().BroadcastAsync(gomock.Eq(headUpdate)).Return(nil)
|
||||
deps := CreateDeps{
|
||||
AclList: aclListMock,
|
||||
SpaceId: spaceId,
|
||||
Payload: expectedPayload,
|
||||
SpaceStorage: spaceStorageMock,
|
||||
StatusService: statusservice.NewNoOpStatusService(),
|
||||
AclList: aclListMock,
|
||||
SpaceId: spaceId,
|
||||
Payload: expectedPayload,
|
||||
SpaceStorage: spaceStorageMock,
|
||||
StatusService: statusservice.NewNoOpStatusService(),
|
||||
HeadNotifiable: headNotifiableMock,
|
||||
}
|
||||
objTreeMock.EXPECT().ID().Return("id")
|
||||
|
||||
@ -87,6 +90,7 @@ func Test_CreateSyncTree(t *testing.T) {
|
||||
aclListMock := mock_list.NewMockACLList(ctrl)
|
||||
objTreeMock := newTestObjMock(mock_tree.NewMockObjectTree(ctrl))
|
||||
spaceStorageMock := mock_storage.NewMockSpaceStorage(ctrl)
|
||||
headNotifiableMock := mock_synctree.NewMockHeadNotifiable(ctrl)
|
||||
spaceId := "spaceId"
|
||||
expectedPayload := tree.ObjectTreeCreatePayload{SpaceId: spaceId}
|
||||
createObjectTree = func(payload tree.ObjectTreeCreatePayload, l list.ACLList, create storage2.TreeStorageCreatorFunc) (objTree tree.ObjectTree, err error) {
|
||||
@ -98,15 +102,17 @@ func Test_CreateSyncTree(t *testing.T) {
|
||||
createSyncClient = syncClientFuncCreator(syncClientMock)
|
||||
objTreeMock.EXPECT().Heads().AnyTimes().Return([]string{"h1"})
|
||||
headUpdate := &treechangeproto.TreeSyncMessage{}
|
||||
headNotifiableMock.EXPECT().UpdateHeads("id", []string{"h1"})
|
||||
syncClientMock.EXPECT().CreateHeadUpdate(gomock.Any(), gomock.Nil()).Return(headUpdate)
|
||||
syncClientMock.EXPECT().BroadcastAsync(gomock.Eq(headUpdate)).Return(nil)
|
||||
objTreeMock.EXPECT().ID().Return("id")
|
||||
deps := CreateDeps{
|
||||
AclList: aclListMock,
|
||||
SpaceId: spaceId,
|
||||
Payload: expectedPayload,
|
||||
SpaceStorage: spaceStorageMock,
|
||||
StatusService: statusservice.NewNoOpStatusService(),
|
||||
AclList: aclListMock,
|
||||
SpaceId: spaceId,
|
||||
Payload: expectedPayload,
|
||||
SpaceStorage: spaceStorageMock,
|
||||
StatusService: statusservice.NewNoOpStatusService(),
|
||||
HeadNotifiable: headNotifiableMock,
|
||||
}
|
||||
|
||||
_, err := CreateSyncTree(ctx, deps)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user