More fixes to settingsdocument
This commit is contained in:
parent
6bf8864f5a
commit
86ba8e33d0
@ -3,6 +3,7 @@ package settingsdocument
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"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/commonspace/settingsdocument/deletionstate"
|
||||
@ -22,6 +23,12 @@ type SettingsDocument interface {
|
||||
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 Deps struct {
|
||||
@ -129,9 +136,19 @@ func (s *settingsDocument) Close() error {
|
||||
func (s *settingsDocument) DeleteObject(id string) (err error) {
|
||||
s.Lock()
|
||||
defer s.Unlock()
|
||||
if s.ID() == id {
|
||||
err = ErrDeleteSelf
|
||||
return
|
||||
}
|
||||
if s.deletionState.Exists(id) {
|
||||
err = ErrAlreadyDeleted
|
||||
return nil
|
||||
}
|
||||
_, err = s.store.TreeStorage(id)
|
||||
if err != nil {
|
||||
err = ErrDocDoesNotExist
|
||||
return
|
||||
}
|
||||
|
||||
// TODO: add snapshot logic
|
||||
res, err := s.deletionState.CreateDeleteChange(id, false)
|
||||
|
||||
@ -129,7 +129,9 @@ func TestSettingsDocument_DeleteObject(t *testing.T) {
|
||||
|
||||
delId := "delId"
|
||||
|
||||
fx.syncTree.EXPECT().ID().Return("syncId")
|
||||
fx.delState.EXPECT().Exists(delId).Return(false)
|
||||
fx.spaceStorage.EXPECT().TreeStorage(delId).Return(nil, nil)
|
||||
res := []byte("settingsData")
|
||||
fx.delState.EXPECT().CreateDeleteChange(delId, false).Return(res, nil)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user