mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-03 10:11:03 +00:00
Also: * Remove Gob encoder/decoder * Stop using custom encoders/decoders for Timestamps (both ugorji and the Golang JSON codecs use nanosecond precision). * Use idiomatic way to check for existence in metric.LastSample()
27 lines
647 B
Go
27 lines
647 B
Go
package app
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/ugorji/go/codec"
|
|
|
|
log "github.com/Sirupsen/logrus"
|
|
)
|
|
|
|
func respondWith(w http.ResponseWriter, code int, response interface{}) {
|
|
if err, ok := response.(error); ok {
|
|
log.Errorf("Error %d: %v", code, err)
|
|
response = err.Error()
|
|
} else if 500 <= code && code < 600 {
|
|
log.Errorf("Non-error %d: %v", code, response)
|
|
}
|
|
|
|
w.Header().Set("Content-Type", "application/json")
|
|
w.Header().Add("Cache-Control", "no-cache")
|
|
w.WriteHeader(code)
|
|
encoder := codec.NewEncoder(w, &codec.JsonHandle{})
|
|
if err := encoder.Encode(response); err != nil {
|
|
log.Errorf("Error encoding response: %v", err)
|
|
}
|
|
}
|