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) { ...@@ -30,7 +30,7 @@ func (s *server) pingpongHandler(w http.ResponseWriter, r *http.Request) {
return return
} }
s.Logger.Errorf("pingpong: ping %s: %w", peerID, err) s.Logger.Errorf("pingpong: ping %s: %w", peerID, err)
jsonhttp.InternalServerError(w, err.Error()) jsonhttp.InternalServerError(w, err)
return return
} }
s.metrics.PingRequestCount.Inc() s.metrics.PingRequestCount.Inc()
......
...@@ -20,14 +20,14 @@ func (s *server) peerConnectHandler(w http.ResponseWriter, r *http.Request) { ...@@ -20,14 +20,14 @@ func (s *server) peerConnectHandler(w http.ResponseWriter, r *http.Request) {
addr, err := multiaddr.NewMultiaddr("/" + mux.Vars(r)["multi-address"]) addr, err := multiaddr.NewMultiaddr("/" + mux.Vars(r)["multi-address"])
if err != nil { if err != nil {
s.Logger.Debugf("debug api: peer connect: parse multiaddress: %w", err) s.Logger.Debugf("debug api: peer connect: parse multiaddress: %w", err)
jsonhttp.BadRequest(w, err.Error()) jsonhttp.BadRequest(w, err)
return return
} }
address, err := s.P2P.Connect(r.Context(), addr) address, err := s.P2P.Connect(r.Context(), addr)
if err != nil { if err != nil {
s.Logger.Errorf("debug api: peer connect: %w", err) s.Logger.Errorf("debug api: peer connect: %w", err)
jsonhttp.InternalServerError(w, err.Error()) jsonhttp.InternalServerError(w, err)
return return
} }
......
...@@ -38,10 +38,25 @@ func Respond(w http.ResponseWriter, statusCode int, response interface{}) { ...@@ -38,10 +38,25 @@ func Respond(w http.ResponseWriter, statusCode int, response interface{}) {
Message: http.StatusText(statusCode), Message: http.StatusText(statusCode),
Code: statusCode, Code: statusCode,
} }
} else if message, ok := response.(string); ok { } else {
response = &StatusResponse{ switch message := response.(type) {
Message: message, case string:
Code: statusCode, 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 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