Change init logic and fix tests
This commit is contained in:
parent
4e8585bf9a
commit
99d67d531b
@ -21,7 +21,10 @@ func NewACLTreeBuilder(t threadmodels.Thread, decoder threadmodels.SigningPubKey
|
||||
return &ACLTreeBuilder{
|
||||
signingPubKeyDecoder: decoder,
|
||||
thread: t,
|
||||
changeLoader: newChangeLoader(t, decoder),
|
||||
changeLoader: newChangeLoader(
|
||||
t,
|
||||
decoder,
|
||||
NewACLChange),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -14,14 +14,17 @@ type changeLoader struct {
|
||||
identityKeys map[string]threadmodels.SigningPubKey
|
||||
signingPubKeyDecoder threadmodels.SigningPubKeyDecoder
|
||||
thread threadmodels.Thread
|
||||
changeCreator func(id string, ch *pb.ACLChange) (*Change, error)
|
||||
}
|
||||
|
||||
func newChangeLoader(
|
||||
thread threadmodels.Thread,
|
||||
signingPubKeyDecoder threadmodels.SigningPubKeyDecoder) *changeLoader {
|
||||
signingPubKeyDecoder threadmodels.SigningPubKeyDecoder,
|
||||
changeCreator func(id string, ch *pb.ACLChange) (*Change, error)) *changeLoader {
|
||||
return &changeLoader{
|
||||
signingPubKeyDecoder: signingPubKeyDecoder,
|
||||
thread: thread,
|
||||
changeCreator: changeCreator,
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,7 +64,7 @@ func (c *changeLoader) loadChange(id string) (ch *Change, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
ch, err = NewACLChange(id, aclChange)
|
||||
ch, err = c.changeCreator(id, aclChange)
|
||||
c.cache[id] = ch
|
||||
|
||||
return ch, nil
|
||||
|
||||
@ -47,9 +47,9 @@ func (d *Document) Update(changes []*pb.ACLChange) (DocumentState, UpdateResult,
|
||||
}
|
||||
|
||||
func (d *Document) Build() (DocumentState, error) {
|
||||
treeBuilder := NewTreeBuilder(d.thread, threadmodels.NewEd25519Decoder())
|
||||
//treeBuilder := NewTreeBuilder(d.thread, threadmodels.NewEd25519Decoder())
|
||||
|
||||
return treeBuilder.Build(fromStart)
|
||||
//return treeBuilder.Build(fromStart)
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ type ACLContext struct {
|
||||
|
||||
func createTreeFromThread(t threadmodels.Thread, fromStart bool) (*Tree, error) {
|
||||
treeBuilder := NewTreeBuilder(t, threadmodels.NewEd25519Decoder())
|
||||
treeBuilder.Init()
|
||||
return treeBuilder.Build(fromStart)
|
||||
}
|
||||
|
||||
@ -27,14 +28,21 @@ func createACLStateFromThread(
|
||||
return nil, err
|
||||
}
|
||||
|
||||
accountData := &AccountData{
|
||||
Identity: identity,
|
||||
EncKey: key,
|
||||
}
|
||||
|
||||
aclTreeBuilder := NewACLTreeBuilder(t, decoder)
|
||||
aclTreeBuilder.Init()
|
||||
aclTree, err := aclTreeBuilder.Build()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if !fromStart {
|
||||
snapshotValidator := NewSnapshotValidator(aclTree, identity, key, decoder)
|
||||
snapshotValidator := NewSnapshotValidator(decoder, accountData)
|
||||
snapshotValidator.Init(aclTree)
|
||||
valid, err := snapshotValidator.ValidateSnapshot(tree.root)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -45,7 +53,8 @@ func createACLStateFromThread(
|
||||
}
|
||||
}
|
||||
|
||||
aclBuilder, err := NewACLStateBuilder(tree, identity, key, decoder)
|
||||
aclBuilder := NewACLStateBuilder(decoder, accountData)
|
||||
err = aclBuilder.Init(tree)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -71,7 +80,8 @@ func createDocumentStateFromThread(
|
||||
return nil, err
|
||||
}
|
||||
|
||||
docStateBuilder := newDocumentStateBuilder(context.Tree, context.ACLState, provider)
|
||||
docStateBuilder := newDocumentStateBuilder(provider)
|
||||
docStateBuilder.init(context.ACLState, context.Tree)
|
||||
docState, err := docStateBuilder.build()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@ -29,7 +29,10 @@ func NewTreeBuilder(t threadmodels.Thread, decoder threadmodels.SigningPubKeyDec
|
||||
return &TreeBuilder{
|
||||
signingPubKeyDecoder: decoder,
|
||||
thread: t,
|
||||
changeLoader: newChangeLoader(t, decoder),
|
||||
changeLoader: newChangeLoader(
|
||||
t,
|
||||
decoder,
|
||||
NewChange),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user