mirror of
https://github.com/anyproto/any-sync.git
synced 2025-06-10 01:51:11 +09:00
Update interfaces
This commit is contained in:
parent
51736bc535
commit
94248dfd59
3 changed files with 25 additions and 26 deletions
|
@ -13,4 +13,5 @@ type TreeGetter interface {
|
||||||
app.ComponentRunnable
|
app.ComponentRunnable
|
||||||
GetTree(ctx context.Context, spaceId, treeId string) (objecttree.ObjectTree, error)
|
GetTree(ctx context.Context, spaceId, treeId string) (objecttree.ObjectTree, error)
|
||||||
DeleteTree(ctx context.Context, spaceId, treeId string) error
|
DeleteTree(ctx context.Context, spaceId, treeId string) error
|
||||||
|
DeleteSpace(ctx context.Context, spaceId string) error
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package settings
|
package settings
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"github.com/anytypeio/any-sync/commonspace/object/treegetter"
|
"github.com/anytypeio/any-sync/commonspace/object/treegetter"
|
||||||
"github.com/anytypeio/any-sync/commonspace/settings/settingsstate"
|
"github.com/anytypeio/any-sync/commonspace/settings/settingsstate"
|
||||||
"github.com/anytypeio/any-sync/util/slice"
|
"github.com/anytypeio/any-sync/util/slice"
|
||||||
|
@ -12,12 +13,8 @@ type SpaceIdsProvider interface {
|
||||||
AllIds() []string
|
AllIds() []string
|
||||||
}
|
}
|
||||||
|
|
||||||
type SpaceDeleter interface {
|
|
||||||
DeleteSpace(spaceId string)
|
|
||||||
}
|
|
||||||
|
|
||||||
type DeletionManager interface {
|
type DeletionManager interface {
|
||||||
UpdateState(state *settingsstate.State) (err error)
|
UpdateState(ctx context.Context, state *settingsstate.State) (err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func newDeletionManager(
|
func newDeletionManager(
|
||||||
|
@ -50,28 +47,29 @@ type deletionManager struct {
|
||||||
onSpaceDelete func()
|
onSpaceDelete func()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *deletionManager) UpdateState(state *settingsstate.State) (err error) {
|
func (d *deletionManager) UpdateState(ctx context.Context, state *settingsstate.State) error {
|
||||||
err = d.deletionState.Add(state.DeletedIds)
|
log := log.With(zap.String("spaceId", d.spaceId))
|
||||||
|
err := d.deletionState.Add(state.DeletedIds)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Warn("failed to add deleted ids to deletion state")
|
log.Warn("failed to add deleted ids to deletion state")
|
||||||
}
|
}
|
||||||
|
if state.DeleterId == "" {
|
||||||
if state.DeleterId != "" {
|
return nil
|
||||||
log.Debug("deleting space", zap.String("spaceId", d.spaceId))
|
|
||||||
spaceDeleter, ok := d.treeGetter.(SpaceDeleter)
|
|
||||||
if ok {
|
|
||||||
spaceDeleter.DeleteSpace(d.spaceId)
|
|
||||||
}
|
|
||||||
if d.isResponsible {
|
|
||||||
allIds := slice.DiscardFromSlice(d.provider.AllIds(), func(id string) bool {
|
|
||||||
return id == d.settingsId
|
|
||||||
})
|
|
||||||
err = d.deletionState.Add(allIds)
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
d.onSpaceDelete()
|
|
||||||
}
|
}
|
||||||
return
|
log.Debug("deleting space")
|
||||||
|
err = d.treeGetter.DeleteSpace(ctx, d.spaceId)
|
||||||
|
if err != nil {
|
||||||
|
log.Debug("failed to notify on space deletion", zap.Error(err))
|
||||||
|
}
|
||||||
|
if d.isResponsible {
|
||||||
|
allIds := slice.DiscardFromSlice(d.provider.AllIds(), func(id string) bool {
|
||||||
|
return id == d.settingsId
|
||||||
|
})
|
||||||
|
err := d.deletionState.Add(allIds)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
d.onSpaceDelete()
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,7 +141,7 @@ func (s *settingsObject) updateIds(tr objecttree.ObjectTree, isUpdate bool) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.Debug("updating object state", zap.String("deleterId", s.state.DeleterId))
|
log.Debug("updating object state", zap.String("deleterId", s.state.DeleterId))
|
||||||
if err = s.deletionManager.UpdateState(s.state); err != nil {
|
if err = s.deletionManager.UpdateState(context.Background(), s.state); err != nil {
|
||||||
log.Error("failed to update state", zap.Error(err))
|
log.Error("failed to update state", zap.Error(err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue