dndex/server/response.go

43 lines
1.1 KiB
Go

package server
import (
"encoding/json"
"fmt"
"net/http"
)
func (rest *REST) respOK(w http.ResponseWriter) {
rest.respMap(w, "ok", true)
}
func (rest *REST) respNotFound(w http.ResponseWriter) {
rest.respMapStatus(w, "error", "not found", http.StatusNotFound)
}
func (rest *REST) respConflict(w http.ResponseWriter) {
rest.respMapStatus(w, "error", "collision found", http.StatusConflict)
}
func (rest *REST) respError(w http.ResponseWriter, err error) {
rest.respMapStatus(w, "error", fmt.Sprint(err), http.StatusInternalServerError)
}
func (rest *REST) respBadRequest(w http.ResponseWriter, msg string) {
rest.respMapStatus(w, "error", msg, http.StatusBadRequest)
}
func (rest *REST) respMapStatus(w http.ResponseWriter, key string, value interface{}, status int) {
w.WriteHeader(status)
rest.resp(w, map[string]interface{}{key: value})
}
func (rest *REST) respMap(w http.ResponseWriter, key string, value interface{}) {
rest.resp(w, map[string]interface{}{key: value})
}
func (rest *REST) resp(w http.ResponseWriter, body interface{}) {
enc := json.NewEncoder(w)
enc.SetIndent("", " ")
enc.Encode(body)
}