45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package web
|
|
|
|
import "net/http"
|
|
|
|
// RenderError renders an error
|
|
func (e *Env) RenderError(w http.ResponseWriter, err error) error {
|
|
e.Log.Warn(err)
|
|
return e.render(w, "error", err.Error())
|
|
}
|
|
|
|
// RenderInternalError renders an error with a user message, and internally
|
|
// logs the real error
|
|
func (e *Env) RenderInternalError(w http.ResponseWriter, msg string, err error) error {
|
|
e.Log.Warn(err)
|
|
return e.render(w, "error", msg)
|
|
}
|
|
|
|
// RenderOK renders a message
|
|
func (e *Env) RenderOK(w http.ResponseWriter, message string) error {
|
|
return e.render(w, "ok", message)
|
|
}
|
|
|
|
func (e *Env) render(w http.ResponseWriter, status, message string) error {
|
|
var out = struct {
|
|
Status string `json:"status"`
|
|
Message string `json:"message"`
|
|
}{
|
|
Status: status,
|
|
Message: message,
|
|
}
|
|
return e.Render.JSON(w, http.StatusOK, out)
|
|
}
|
|
|
|
// RenderJSON renders the data in JSON format
|
|
func (e *Env) RenderJSON(w http.ResponseWriter, data interface{}) error {
|
|
var out = struct {
|
|
Status string `json:"status"`
|
|
Data interface{} `json:"data"`
|
|
}{
|
|
Status: "ok",
|
|
Data: data,
|
|
}
|
|
return e.Render.JSON(w, http.StatusOK, out)
|
|
}
|