示例#1
0
func (handler APIHandler) FeatureCreate(w http.ResponseWriter, r *http.Request) {
	var feature m.FeatureFlag

	if err := json.NewDecoder(r.Body).Decode(&feature); err != nil {
		writeUnprocessableEntity(err, w)
		return
	}

	if err := feature.Validate(); err != nil {
		writeMessage(400, "invalid_feature", err.Error(), w)
		return
	}

	err := handler.FeatureService.AddFeature(feature)
	if err != nil && err.Error() == "Feature already exists" {
		writeMessage(400, "invalid_feature", err.Error(), w)
		return
	}

	w.Header().Set("Content-Type", getJsonHeader())
	w.WriteHeader(http.StatusCreated)
	if err := json.NewEncoder(w).Encode(feature); err != nil {
		panic(err)
	}
}