Commit e7d5f7b9 authored by Janos Guljas's avatar Janos Guljas

handle error and Stringer implicitly in jsonhttp Respond

parent 2b5b0ea9
......@@ -30,7 +30,7 @@ func (s *server) pingpongHandler(w http.ResponseWriter, r *http.Request) {
return
}
s.Logger.Errorf("pingpong: ping %s: %w", peerID, err)
jsonhttp.InternalServerError(w, err.Error())
jsonhttp.InternalServerError(w, err)
return
}
s.metrics.PingRequestCount.Inc()
......
......@@ -20,14 +20,14 @@ func (s *server) peerConnectHandler(w http.ResponseWriter, r *http.Request) {
addr, err := multiaddr.NewMultiaddr("/" + mux.Vars(r)["multi-address"])
if err != nil {
s.Logger.Debugf("debug api: peer connect: parse multiaddress: %w", err)
jsonhttp.BadRequest(w, err.Error())
jsonhttp.BadRequest(w, err)
return
}
address, err := s.P2P.Connect(r.Context(), addr)
if err != nil {
s.Logger.Errorf("debug api: peer connect: %w", err)
jsonhttp.InternalServerError(w, err.Error())
jsonhttp.InternalServerError(w, err)
return
}
......
......@@ -38,10 +38,25 @@ func Respond(w http.ResponseWriter, statusCode int, response interface{}) {
Message: http.StatusText(statusCode),
Code: statusCode,
}
} else if message, ok := response.(string); ok {
response = &StatusResponse{
Message: message,
Code: statusCode,
} else {
switch message := response.(type) {
case string:
response = &StatusResponse{
Message: message,
Code: statusCode,
}
case error:
response = &StatusResponse{
Message: message.Error(),
Code: statusCode,
}
case interface {
String() string
}:
response = &StatusResponse{
Message: message.String(),
Code: statusCode,
}
}
}
var b bytes.Buffer
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment