Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
go-dms3
Commits
8382c797
Commit
8382c797
authored
10 years ago
by
verokarhu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use dagreader in servehttp
parent
7b22bdc6
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
30 additions
and
2 deletions
+30
-2
server/http/http.go
server/http/http.go
+11
-2
server/http/http_test.go
server/http/http_test.go
+14
-0
server/http/ipfs.go
server/http/ipfs.go
+5
-0
No files found.
server/http/http.go
View file @
8382c797
...
...
@@ -2,6 +2,7 @@ package http
import
(
"fmt"
"io"
"net/http"
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/gorilla/mux"
...
...
@@ -30,11 +31,19 @@ func (i *handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
nd
,
err
:=
i
.
ResolvePath
(
path
)
if
err
!=
nil
{
w
.
WriteHeader
(
http
.
StatusInternalServerError
)
fmt
.
Println
(
err
)
return
}
dr
,
err
:=
i
.
NewDagReader
(
nd
)
if
err
!=
nil
{
// TODO: return json object containing the tree data if it's a directory (err == ErrIsDir)
w
.
WriteHeader
(
http
.
StatusInternalServerError
)
fmt
.
Println
(
err
)
return
}
// TODO: return json object containing the tree data if it's a folder
w
.
Write
(
nd
.
Data
)
io
.
Copy
(
w
,
dr
)
}
func
(
i
*
handler
)
postHandler
(
w
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
...
...
This diff is collapsed.
Click to expand it.
server/http/http_test.go
View file @
8382c797
package
http
import
(
"bytes"
"errors"
"io"
"io/ioutil"
...
...
@@ -25,6 +26,7 @@ func TestServeHTTP(t *testing.T) {
tests
:=
[]
test
{
{
"/"
,
http
.
StatusInternalServerError
,
""
,
""
},
{
"/hash"
,
http
.
StatusOK
,
""
,
"some fine data"
},
{
"/hash2"
,
http
.
StatusInternalServerError
,
""
,
""
},
}
for
_
,
test
:=
range
tests
{
...
...
@@ -74,6 +76,10 @@ func (i *testIpfsHandler) ResolvePath(path string) (*dag.Node, error) {
return
&
dag
.
Node
{
Data
:
[]
byte
(
"some fine data"
)},
nil
}
if
path
==
"/hash2"
{
return
&
dag
.
Node
{
Data
:
[]
byte
(
"data that breaks dagreader"
)},
nil
}
return
nil
,
errors
.
New
(
""
)
}
...
...
@@ -92,3 +98,11 @@ func (i *testIpfsHandler) AddNodeToDAG(nd *dag.Node) (u.Key, error) {
return
""
,
errors
.
New
(
""
)
}
func
(
i
*
testIpfsHandler
)
NewDagReader
(
nd
*
dag
.
Node
)
(
io
.
Reader
,
error
)
{
if
string
(
nd
.
Data
)
!=
"data that breaks dagreader"
{
return
bytes
.
NewReader
(
nd
.
Data
),
nil
}
return
nil
,
errors
.
New
(
""
)
}
This diff is collapsed.
Click to expand it.
server/http/ipfs.go
View file @
8382c797
...
...
@@ -13,6 +13,7 @@ type ipfs interface {
ResolvePath
(
string
)
(
*
dag
.
Node
,
error
)
NewDagFromReader
(
io
.
Reader
)
(
*
dag
.
Node
,
error
)
AddNodeToDAG
(
nd
*
dag
.
Node
)
(
u
.
Key
,
error
)
NewDagReader
(
nd
*
dag
.
Node
)
(
io
.
Reader
,
error
)
}
type
ipfsHandler
struct
{
...
...
@@ -30,3 +31,7 @@ func (i *ipfsHandler) NewDagFromReader(r io.Reader) (*dag.Node, error) {
func
(
i
*
ipfsHandler
)
AddNodeToDAG
(
nd
*
dag
.
Node
)
(
u
.
Key
,
error
)
{
return
i
.
node
.
DAG
.
Add
(
nd
)
}
func
(
i
*
ipfsHandler
)
NewDagReader
(
nd
*
dag
.
Node
)
(
io
.
Reader
,
error
)
{
return
dag
.
NewDagReader
(
nd
,
i
.
node
.
DAG
)
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment