more cleanup, update cboripld package
License: MIT Signed-off-by: Jeromy <why@ipfs.io>
Jeromy committed
Oct 28, 2016 at 12:56 UTC
4c5a5c8a8f8bec697467b94d04401068eee8faee
3 files changed
+5
-71
core/commands/dag/dag.go
+2
-68
@@ -1,16 +1,15 @@
1
package dagcmd
2
3
import (
4
- "encoding/json"
4
"fmt"
5
"io"
6
"strings"
7
8
cmds "github.com/ipfs/go-ipfs/commands"
9
10
+ ipldcbor "gx/ipfs/QmRcAVqrbY5wryx7hfNLtiUZbCcstzaJL7YJFBboitcqWF/go-ipld-cbor"
11
node "gx/ipfs/QmU7bFWQ793qmvNy7outdCaMfSDNk8uqhx4VNrxYj5fj5g/go-ipld-node"
12
cid "gx/ipfs/QmXfiyr2RWEXpVDdaYnD2HNiBk6UBddsvEP4RPfXb6nGqY/go-cid"
13
- ipldcbor "gx/ipfs/QmY7L2aEa1rHjkSSbXJB8oC7825JTpUUvDygmM2JPQeqhr/go-ipld-cbor"
13
)
14
15
var DagCmd = &cmds.Command{
@@ -18,7 +17,6 @@ var DagCmd = &cmds.Command{
17
Tagline: "Interact with ipld dag objects.",
18
ShortDescription: ``,
19
},
21
-
20
Subcommands: map[string]*cmds.Command{
21
"put": DagPutCmd,
22
"get": DagGetCmd,
@@ -121,76 +119,12 @@ var DagGetCmd = &cmds.Command{
119
}
120
121
func convertJsonToType(r io.Reader, format string) (node.Node, error) {
124
- var obj map[string]interface{}
125
- err := json.NewDecoder(r).Decode(&obj)
126
- if err != nil {
127
- return nil, err
128
- }
129
-
122
switch format {
123
case "cbor", "dag-cbor":
132
- return convertJsonToCbor(obj)
124
+ return ipldcbor.FromJson(r)
125
case "dag-pb", "protobuf":
126
return nil, fmt.Errorf("protobuf handling in 'dag' command not yet implemented")
127
default:
128
return nil, fmt.Errorf("unknown target format: %s", format)
129
}
130
}
139
-
140
-func convertJsonToCbor(from map[string]interface{}) (*ipldcbor.Node, error) {
141
- out, err := convertMapSIToCbor(from)
142
- if err != nil {
143
- return nil, err
144
- }
145
-
146
- return ipldcbor.WrapMap(out)
147
-}
148
-
149
-func convertMapSIToCbor(from map[string]interface{}) (map[interface{}]interface{}, error) {
150
- to := make(map[interface{}]interface{})
151
- for k, v := range from {
152
- out, err := convertToCborIshObj(v)
153
- if err != nil {
154
- return nil, err
155
- }
156
- to[k] = out
157
- }
158
-
159
- return to, nil
160
-}
161
-
162
-func convertToCborIshObj(i interface{}) (interface{}, error) {
163
- switch v := i.(type) {
164
- case map[string]interface{}:
165
- if lnk, ok := v["/"]; ok && len(v) == 1 {
166
- // special case for links
167
- vstr, ok := lnk.(string)
168
- if !ok {
169
- return nil, fmt.Errorf("link should have been a string")
170
- }
171
-
172
- c, err := cid.Decode(vstr)
173
- if err != nil {
174
- return nil, err
175
- }
176
-
177
- return &ipldcbor.Link{Target: c}, nil
178
- }
179
-
180
- return convertMapSIToCbor(v)
181
- case []interface{}:
182
- var out []interface{}
183
- for _, o := range v {
184
- obj, err := convertToCborIshObj(o)
185
- if err != nil {
186
- return nil, err
187
- }
188
-
189
- out = append(out, obj)
190
- }
191
-
192
- return out, nil
193
- default:
194
- return v, nil
195
- }
196
-}
merkledag/merkledag.go
+1
-1
@@ -11,10 +11,10 @@ import (
11
bserv "github.com/ipfs/go-ipfs/blockservice"
12
offline "github.com/ipfs/go-ipfs/exchange/offline"
13
14
+ ipldcbor "gx/ipfs/QmRcAVqrbY5wryx7hfNLtiUZbCcstzaJL7YJFBboitcqWF/go-ipld-cbor"
15
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
16
node "gx/ipfs/QmU7bFWQ793qmvNy7outdCaMfSDNk8uqhx4VNrxYj5fj5g/go-ipld-node"
17
cid "gx/ipfs/QmXfiyr2RWEXpVDdaYnD2HNiBk6UBddsvEP4RPfXb6nGqY/go-cid"
17
- ipldcbor "gx/ipfs/QmY7L2aEa1rHjkSSbXJB8oC7825JTpUUvDygmM2JPQeqhr/go-ipld-cbor"
18
)
19
20
var log = logging.Logger("merkledag")
package.json
+2
-2
@@ -278,9 +278,9 @@
278
},
279
{
280
"author": "whyrusleeping",
281
- "hash": "QmY7L2aEa1rHjkSSbXJB8oC7825JTpUUvDygmM2JPQeqhr",
281
+ "hash": "QmRcAVqrbY5wryx7hfNLtiUZbCcstzaJL7YJFBboitcqWF",
282
"name": "go-ipld-cbor",
283
- "version": "0.2.2"
283
+ "version": "0.3.0"
284
}
285
],
286
"gxVersion": "0.4.0",