mirror of
https://github.com/fluencelabs/tendermint
synced 2025-07-01 21:51:40 +00:00
Rename proxy to server for clarity
This commit is contained in:
58
server/helpers.go
Normal file
58
server/helpers.go
Normal file
@ -0,0 +1,58 @@
|
||||
/*
|
||||
package server provides http handlers to construct a server server
|
||||
for key management, transaction signing, and query validation.
|
||||
|
||||
Please read the README and godoc to see how to
|
||||
configure the server for your application.
|
||||
*/
|
||||
package server
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
|
||||
data "github.com/tendermint/go-data"
|
||||
"github.com/tendermint/go-keys/server/types"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
func readRequest(r *http.Request, o interface{}) error {
|
||||
defer r.Body.Close()
|
||||
data, err := ioutil.ReadAll(r.Body)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "Read Request")
|
||||
}
|
||||
err = json.Unmarshal(data, o)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "Parse")
|
||||
}
|
||||
return validate(o)
|
||||
}
|
||||
|
||||
// most errors are bad input, so 406... do better....
|
||||
func writeError(w http.ResponseWriter, err error) {
|
||||
// fmt.Printf("Error: %+v\n", err)
|
||||
res := types.ErrorResponse{
|
||||
Code: 406,
|
||||
Error: err.Error(),
|
||||
}
|
||||
writeCode(w, &res, 406)
|
||||
}
|
||||
|
||||
func writeCode(w http.ResponseWriter, o interface{}, code int) {
|
||||
// two space indent to make it easier to read
|
||||
data, err := data.ToJSON(o)
|
||||
if err != nil {
|
||||
writeError(w, err)
|
||||
} else {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
w.WriteHeader(code)
|
||||
w.Write(data)
|
||||
}
|
||||
}
|
||||
|
||||
func writeSuccess(w http.ResponseWriter, o interface{}) {
|
||||
writeCode(w, o, 200)
|
||||
}
|
Reference in New Issue
Block a user