func tableCmd()

in server/table_handler.go [245:277]


func tableCmd(w http.ResponseWriter, r *http.Request) {
	var err error

	t := parseTableForm(w, r)
	if t == nil {
		return
	}

	if t.Cmd == "list" {
		err = handleListCmd(w, t)
	} else if len(t.Service) == 0 || len(t.Cluster) == 0 || len(t.DB) == 0 || len(t.Table) == 0 {
		err = errors.New("invalid command, parameters(service,cluster,db,table) must not be empty")
	} else if t.Cmd == "add" && len(t.OutputFormat) == 0 && !outputSQL(t.Output) {
		err = errors.New("invalid add command. outputFormat must not be empty")
	} else if (t.Cmd == "del" || t.Cmd == "add") && (len(t.Input) == 0 || len(t.Output) == 0) {
		err = fmt.Errorf("parameters(input,output) must not be empty for '%v' command", t.Cmd)
	} else if t.Cmd == "del" {
		err = handleDelCmd(w, t)
	} else if t.Cmd == "add" {
		err = handleAddCmd(w, t)
	} else {
		err = errors.New("unknown command (possible commands add/del/list)")
	}
	if err != nil {
		log.Errorf("Table http: cmd=%v, service=%v, cluster=%v, db=%v, table=%v, input=%v, output=%v, version=%v, outputFormat=%v, error=%v", t.Cmd, t.Service, t.Cluster, t.DB, t.Table, t.Input, t.Output, t.Version, t.OutputFormat, err)

		http.Error(w, err.Error(), http.StatusInternalServerError)
		return
	}

	w.Header().Set("Content-Type", "application/json")
	w.WriteHeader(http.StatusOK)
}