package api import ( "encoding/json" "log" "net/http" ) // writeJSON writes a JSON Content-Type header and a JSON-encoded object to // the http.ResponseWriter. func writeJSON(w http.ResponseWriter, v interface{}) error { data, err := json.MarshalIndent(v, "", " ") if err != nil { return err } w.Header().Set("content-type", "application/json; charset=utf-8") _, err = w.Write(data) return err } // Message is for returning simple message payloads to the user type Message struct { Message string `json:"message"` } // Error is for returning simple error payloads to the user, as well as logging type Error struct { Error error } func (e Error) MarshalJSON() ([]byte, error) { log.Println(e.Error) return json.Marshal(struct { Error string `json:"error"` }{e.Error.Error()}) }