diff --git a/core/coreunix/metadata.go b/core/coreunix/metadata.go index 6e9bd01cc..7b23bf080 100644 --- a/core/coreunix/metadata.go +++ b/core/coreunix/metadata.go @@ -7,8 +7,9 @@ import ( u "github.com/jbenet/go-ipfs/util" ) -func AddMetadataTo(key u.Key, m *ft.Metadata, n *core.IpfsNode) (u.Key, error) { - nd, err := n.DAG.Get(key) +func AddMetadataTo(n *core.IpfsNode, key string, m *ft.Metadata) (string, error) { + ukey := u.B58KeyDecode(key) + nd, err := n.DAG.Get(ukey) if err != nil { return "", err } @@ -25,11 +26,17 @@ func AddMetadataTo(key u.Key, m *ft.Metadata, n *core.IpfsNode) (u.Key, error) { return "", err } - return n.DAG.Add(mdnode) + nk, err := n.DAG.Add(mdnode) + if err != nil { + return "", err + } + + return nk.B58String(), nil } -func Metadata(key u.Key, n *core.IpfsNode) (*ft.Metadata, error) { - nd, err := n.DAG.Get(key) +func Metadata(n *core.IpfsNode, key string) (*ft.Metadata, error) { + ukey := u.B58KeyDecode(key) + nd, err := n.DAG.Get(ukey) if err != nil { return nil, err } diff --git a/core/coreunix/metadata_test.go b/core/coreunix/metadata_test.go index ab7bba60c..56074fad5 100644 --- a/core/coreunix/metadata_test.go +++ b/core/coreunix/metadata_test.go @@ -10,6 +10,7 @@ import ( dssync "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-datastore/sync" bstore "github.com/jbenet/go-ipfs/blocks/blockstore" bserv "github.com/jbenet/go-ipfs/blockservice" + core "github.com/jbenet/go-ipfs/core" offline "github.com/jbenet/go-ipfs/exchange/offline" importer "github.com/jbenet/go-ipfs/importer" chunk "github.com/jbenet/go-ipfs/importer/chunk" @@ -19,7 +20,7 @@ import ( u "github.com/jbenet/go-ipfs/util" ) -func getDagservAndPinner(t *testing.T) merkledag.DAGService { +func getDagserv(t *testing.T) merkledag.DAGService { db := dssync.MutexWrap(ds.NewMapDatastore()) bs := bstore.NewBlockstore(db) blockserv, err := bserv.New(bs, offline.Exchange(bs)) @@ -31,7 +32,7 @@ func getDagservAndPinner(t *testing.T) merkledag.DAGService { func TestMetadata(t *testing.T) { // Make some random node - ds := getDagservAndPinner(t) + ds := getDagserv(t) data := make([]byte, 1000) u.NewTimeSeededRand().Read(data) r := bytes.NewReader(data) @@ -48,12 +49,15 @@ func TestMetadata(t *testing.T) { m := new(ft.Metadata) m.MimeType = "THIS IS A TEST" - mdk, err := AddMetadataTo(k, m, ds) + // Such effort, many compromise + ipfsnode := &core.IpfsNode{DAG: ds} + + mdk, err := AddMetadataTo(ipfsnode, k.B58String(), m) if err != nil { t.Fatal(err) } - rec, err := Metadata(mdk, ds) + rec, err := Metadata(ipfsnode, mdk) if err != nil { t.Fatal(err) } @@ -61,7 +65,7 @@ func TestMetadata(t *testing.T) { t.Fatalf("something went wrong in conversion: '%s' != '%s'", rec.MimeType, m.MimeType) } - retnode, err := ds.Get(mdk) + retnode, err := ds.Get(u.B58KeyDecode(mdk)) if err != nil { t.Fatal(err) }