diff --git a/apiutils.go b/apiutils.go index 9f972be..ffb4095 100644 --- a/apiutils.go +++ b/apiutils.go @@ -68,6 +68,14 @@ func NewErrorResponse(status int, message string) ErrorResponse { } func ServeJSON(w http.ResponseWriter, v interface{}) { + serve(w, v, http.StatusOK) +} + +func ServeError(w http.ResponseWriter, errRes ErrorResponse) { + serve(w, errRes, errRes.Status) +} + +func serve(w http.ResponseWriter, v interface{}, status int) { content, err := json.MarshalIndent(v, "", " ") if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) @@ -75,14 +83,10 @@ func ServeJSON(w http.ResponseWriter, v interface{}) { } w.Header().Set("Content-Length", strconv.Itoa(len(content))) w.Header().Set("Content-Type", "application/json") + w.WriteHeader(status) w.Write(content) } -func ServeError(w http.ResponseWriter, errRes ErrorResponse) { - w.WriteHeader(errRes.Status) - ServeJSON(w, errRes) -} - const ( StatusUnprocessableEntity = 422 )