From 87ce7abe47a8fa24a23f01e71fd172cd2f05d1d5 Mon Sep 17 00:00:00 2001 From: Henry Date: Sat, 9 May 2015 11:49:02 +0200 Subject: [PATCH] unixfs/io: added NewEmptyDirectory() some golinting along the way --- core/corehttp/gateway_handler.go | 4 ++-- unixfs/io/dirbuilder.go | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/core/corehttp/gateway_handler.go b/core/corehttp/gateway_handler.go index 31ead9239..8a28e3093 100644 --- a/core/corehttp/gateway_handler.go +++ b/core/corehttp/gateway_handler.go @@ -240,7 +240,7 @@ func (i *gatewayHandler) postHandler(w http.ResponseWriter, r *http.Request) { } func (i *gatewayHandler) putEmptyDirHandler(w http.ResponseWriter, r *http.Request) { - newnode := uio.NewDirectory(i.node.DAG).GetNode() + newnode := uio.NewEmptyDirectory() key, err := i.node.DAG.Add(newnode) if err != nil { @@ -266,7 +266,7 @@ func (i *gatewayHandler) putHandler(w http.ResponseWriter, r *http.Request) { var newnode *dag.Node if pathext[len(pathext)-1] == '/' { - newnode = uio.NewDirectory(i.node.DAG).GetNode() + newnode = uio.NewEmptyDirectory() } else { newnode, err = i.newDagFromReader(r.Body) if err != nil { diff --git a/unixfs/io/dirbuilder.go b/unixfs/io/dirbuilder.go index b30d9ea3a..ef74f3de0 100644 --- a/unixfs/io/dirbuilder.go +++ b/unixfs/io/dirbuilder.go @@ -15,15 +15,22 @@ type directoryBuilder struct { dirnode *mdag.Node } +// NewEmptyDirectory returns an empty merkledag Node with a folder Data chunk +func NewEmptyDirectory() *mdag.Node { + return &mdag.Node{Data: format.FolderPBData()} +} + +// NewDirectory returns a directoryBuilder. It needs a DAGService to add the Children func NewDirectory(dserv mdag.DAGService) *directoryBuilder { db := new(directoryBuilder) db.dserv = dserv - db.dirnode = new(mdag.Node) - db.dirnode.Data = format.FolderPBData() + db.dirnode = NewEmptyDirectory() return db } +// AddChild adds a (name, key)-pair to the root node. func (d *directoryBuilder) AddChild(name string, k u.Key) error { + // TODO(cryptix): consolidate context managment ctx, cancel := context.WithTimeout(context.TODO(), time.Minute) defer cancel() @@ -40,6 +47,7 @@ func (d *directoryBuilder) AddChild(name string, k u.Key) error { return nil } +// GetNode returns the root of this directoryBuilder func (d *directoryBuilder) GetNode() *mdag.Node { return d.dirnode }