More fixes to settingsdocument
This commit is contained in:
parent
6bf8864f5a
commit
86ba8e33d0
@ -3,6 +3,7 @@ package settingsdocument
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/account"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/account"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app/logger"
|
||||||
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/settingsdocument/deletionstate"
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/settingsdocument/deletionstate"
|
||||||
@ -22,6 +23,12 @@ type SettingsDocument interface {
|
|||||||
DeleteObject(id string) (err error)
|
DeleteObject(id string) (err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
ErrDeleteSelf = errors.New("cannot delete seld")
|
||||||
|
ErrAlreadyDeleted = errors.New("the document is already deleted")
|
||||||
|
ErrDocDoesNotExist = errors.New("the document does not exist")
|
||||||
|
)
|
||||||
|
|
||||||
type BuildTreeFunc func(ctx context.Context, id string, listener updatelistener.UpdateListener) (t synctree.SyncTree, err error)
|
type BuildTreeFunc func(ctx context.Context, id string, listener updatelistener.UpdateListener) (t synctree.SyncTree, err error)
|
||||||
|
|
||||||
type Deps struct {
|
type Deps struct {
|
||||||
@ -129,9 +136,19 @@ func (s *settingsDocument) Close() error {
|
|||||||
func (s *settingsDocument) DeleteObject(id string) (err error) {
|
func (s *settingsDocument) DeleteObject(id string) (err error) {
|
||||||
s.Lock()
|
s.Lock()
|
||||||
defer s.Unlock()
|
defer s.Unlock()
|
||||||
|
if s.ID() == id {
|
||||||
|
err = ErrDeleteSelf
|
||||||
|
return
|
||||||
|
}
|
||||||
if s.deletionState.Exists(id) {
|
if s.deletionState.Exists(id) {
|
||||||
|
err = ErrAlreadyDeleted
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
_, err = s.store.TreeStorage(id)
|
||||||
|
if err != nil {
|
||||||
|
err = ErrDocDoesNotExist
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: add snapshot logic
|
// TODO: add snapshot logic
|
||||||
res, err := s.deletionState.CreateDeleteChange(id, false)
|
res, err := s.deletionState.CreateDeleteChange(id, false)
|
||||||
|
|||||||
@ -129,7 +129,9 @@ func TestSettingsDocument_DeleteObject(t *testing.T) {
|
|||||||
|
|
||||||
delId := "delId"
|
delId := "delId"
|
||||||
|
|
||||||
|
fx.syncTree.EXPECT().ID().Return("syncId")
|
||||||
fx.delState.EXPECT().Exists(delId).Return(false)
|
fx.delState.EXPECT().Exists(delId).Return(false)
|
||||||
|
fx.spaceStorage.EXPECT().TreeStorage(delId).Return(nil, nil)
|
||||||
res := []byte("settingsData")
|
res := []byte("settingsData")
|
||||||
fx.delState.EXPECT().CreateDeleteChange(delId, false).Return(res, nil)
|
fx.delState.EXPECT().CreateDeleteChange(delId, false).Return(res, nil)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user