code: func (api UsersAPI) UpdateName(w http.ResponseWriter, r *http.Request) {
  	username := mux.Vars(r)["username"]
  	values := struct {
  		Firstname string `json:"firstname"`
  		Lastname  string `json:"lastname"`
  	}{}
  	if err := json.NewDecoder(r.Body).Decode(&values); err != nil {
  		http.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest)
  		return
  	}
  	userMgr := user.NewManager(r)
  	exists, err := userMgr.Exists(username)
  	if !exists || err != nil {
  		http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound)
  		return
  	}
  	err = userMgr.UpdateName(username, values.Firstname, values.Lastname)
  	if err != nil {
  		http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
  		return
  	}
  	w.WriteHeader(http.StatusNoContent)
  }
docs: // UpdateName is the handler for PUT /users/{username}/name