Files
vulture/handlerWrapper.go
T

27 lines
493 B
Go

package main
import (
"encoding/json"
"log"
"net/http"
)
type errorWrapper struct {
Error string `json:"error"`
}
type ApiHandler func(w http.ResponseWriter, request *http.Request) (interface{}, error)
func (this ApiHandler) ServeHTTP(w http.ResponseWriter, request *http.Request) {
ret, err := this(w, request)
if err != nil {
log.Println(err)
ret = &errorWrapper{err.Error()}
w.WriteHeader(500)
} else {
w.WriteHeader(200)
}
enc := json.NewEncoder(w)
enc.Encode(ret)
}