func UpdateProfile(wr http.ResponseWriter, req *http.Request) { var ( decoder *json.Decoder profile *data.Profile err error encoder *json.Encoder ) decoder = json.NewDecoder(req.Body) profile = data.NewProfile() encoder = json.NewEncoder(wr) if err = decoder.Decode(profile); nil != err { wr.WriteHeader(http.StatusBadRequest) encoder.Encode(NewErrorJSONBadRequest()) return } if err = profile.Update(); err != nil { log.Printf("error occurred saving profile %s ", err.Error()) wr.WriteHeader(http.StatusInternalServerError) encoder.Encode(NewErrorJSONUnexpectedError(err.Error())) return } encoder.Encode(profile) }