tree ids all full paths
parent
04defa3999
commit
24acc02dc7
|
|
@ -210,6 +210,23 @@ func TestServerPutTreeGetFile(t *testing.T) {
|
||||||
if !bytes.Contains(w.Body.Bytes(), []byte(`{"Title":"my title","Deleted":false,"Content":"`)) {
|
if !bytes.Contains(w.Body.Bytes(), []byte(`{"Title":"my title","Deleted":false,"Content":"`)) {
|
||||||
t.Fatal(w)
|
t.Fatal(w)
|
||||||
}
|
}
|
||||||
|
var branch Branch
|
||||||
|
if err := json.NewDecoder(w.Body).Decode(&branch); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Logf("TODO: %+v", branch)
|
||||||
|
if branch.Leaf != (Leaf{}) {
|
||||||
|
t.Error(branch.Leaf)
|
||||||
|
}
|
||||||
|
if parent, ok := branch.Branches["my pid"]; !ok {
|
||||||
|
t.Error(ok, branch)
|
||||||
|
} else if parent.Leaf.Title != "Untitled" {
|
||||||
|
t.Error(parent.Leaf)
|
||||||
|
} else if child, ok := parent.Branches[NewID(id)]; !ok {
|
||||||
|
t.Error(ok, NewID("my pid").Push(id), parent)
|
||||||
|
} else if child.Leaf.Title != "my title" {
|
||||||
|
t.Error(child.Leaf)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
t.Run("get", func(t *testing.T) {
|
t.Run("get", func(t *testing.T) {
|
||||||
r := httptest.NewRequest(http.MethodGet, "/"+url.PathEscape(id), nil)
|
r := httptest.NewRequest(http.MethodGet, "/"+url.PathEscape(id), nil)
|
||||||
|
|
|
||||||
|
|
@ -67,21 +67,21 @@ func (tree Tree) WithRoot(root string) Tree {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tree Tree) GetRootMeta() (Branch, error) {
|
func (tree Tree) GetRootMeta() (Branch, error) {
|
||||||
return tree.getRoot(false, false)
|
return tree.getRoot(NewID(""), false, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tree Tree) GetRoot() (Branch, error) {
|
func (tree Tree) GetRoot() (Branch, error) {
|
||||||
if !tree.cachedRoot.IsZero() {
|
if !tree.cachedRoot.IsZero() {
|
||||||
return tree.cachedRoot, nil
|
return tree.cachedRoot, nil
|
||||||
}
|
}
|
||||||
got, err := tree.getRoot(true, false)
|
got, err := tree.getRoot(NewID(""), true, false)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
tree.cachedRoot = got
|
tree.cachedRoot = got
|
||||||
}
|
}
|
||||||
return got, err
|
return got, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tree Tree) getRoot(withContent, withDeleted bool) (Branch, error) {
|
func (tree Tree) getRoot(pid ID, withContent, withDeleted bool) (Branch, error) {
|
||||||
m := Branch{Branches: map[ID]Branch{}}
|
m := Branch{Branches: map[ID]Branch{}}
|
||||||
entries, err := os.ReadDir(tree.root)
|
entries, err := os.ReadDir(tree.root)
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
|
|
@ -105,10 +105,10 @@ func (tree Tree) getRoot(withContent, withDeleted bool) (Branch, error) {
|
||||||
}
|
}
|
||||||
} else if entry.IsDir() {
|
} else if entry.IsDir() {
|
||||||
subtree := tree.WithRoot(path.Join(tree.root, entry.Name()))
|
subtree := tree.WithRoot(path.Join(tree.root, entry.Name()))
|
||||||
if branch, err := subtree.getRoot(withContent, withDeleted); err != nil {
|
if branch, err := subtree.getRoot(pid.Push(entry.Name()), withContent, withDeleted); err != nil {
|
||||||
return Branch{}, err
|
return Branch{}, err
|
||||||
} else if !branch.IsZero() && (!branch.Leaf.Deleted || withDeleted) {
|
} else if !branch.IsZero() && (!branch.Leaf.Deleted || withDeleted) {
|
||||||
m.Branches[NewID(entry.Name())] = branch
|
m.Branches[pid.Push(entry.Name())] = branch
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ func TestTreeDel(t *testing.T) {
|
||||||
t.Fatal(root.Branches)
|
t.Fatal(root.Branches)
|
||||||
}
|
}
|
||||||
|
|
||||||
if root, err := tree.getRoot(false, true); err != nil {
|
if root, err := tree.getRoot(NewID(""), false, true); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
} else if len(root.Branches) != 1 {
|
} else if len(root.Branches) != 1 {
|
||||||
t.Fatal(root.Branches)
|
t.Fatal(root.Branches)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue