unixfs/io: added NewEmptyDirectory()
some golinting along the way
Henry committed
May 9, 2015 at 11:49 UTC
87ce7abe47a8fa24a23f01e71fd172cd2f05d1d5
2 files changed
+12
-4
core/corehttp/gateway_handler.go
+2
-2
@@ -240,7 +240,7 @@ func (i *gatewayHandler) postHandler(w http.ResponseWriter, r *http.Request) {
240
}
241
242
func (i *gatewayHandler) putEmptyDirHandler(w http.ResponseWriter, r *http.Request) {
243
- newnode := uio.NewDirectory(i.node.DAG).GetNode()
243
+ newnode := uio.NewEmptyDirectory()
244
245
key, err := i.node.DAG.Add(newnode)
246
if err != nil {
@@ -266,7 +266,7 @@ func (i *gatewayHandler) putHandler(w http.ResponseWriter, r *http.Request) {
266
267
var newnode *dag.Node
268
if pathext[len(pathext)-1] == '/' {
269
- newnode = uio.NewDirectory(i.node.DAG).GetNode()
269
+ newnode = uio.NewEmptyDirectory()
270
} else {
271
newnode, err = i.newDagFromReader(r.Body)
272
if err != nil {
unixfs/io/dirbuilder.go
+10
-2
@@ -15,15 +15,22 @@ type directoryBuilder struct {
15
dirnode *mdag.Node
16
}
17
18
+// NewEmptyDirectory returns an empty merkledag Node with a folder Data chunk
19
+func NewEmptyDirectory() *mdag.Node {
20
+ return &mdag.Node{Data: format.FolderPBData()}
21
+}
22
+
23
+// NewDirectory returns a directoryBuilder. It needs a DAGService to add the Children
24
func NewDirectory(dserv mdag.DAGService) *directoryBuilder {
25
db := new(directoryBuilder)
26
db.dserv = dserv
21
- db.dirnode = new(mdag.Node)
22
- db.dirnode.Data = format.FolderPBData()
27
+ db.dirnode = NewEmptyDirectory()
28
return db
29
}
30
31
+// AddChild adds a (name, key)-pair to the root node.
32
func (d *directoryBuilder) AddChild(name string, k u.Key) error {
33
+ // TODO(cryptix): consolidate context managment
34
ctx, cancel := context.WithTimeout(context.TODO(), time.Minute)
35
defer cancel()
36
@@ -40,6 +47,7 @@ func (d *directoryBuilder) AddChild(name string, k u.Key) error {
47
return nil
48
}
49
50
+// GetNode returns the root of this directoryBuilder
51
func (d *directoryBuilder) GetNode() *mdag.Node {
52
return d.dirnode
53
}