save.go 1.1 KB
Newer Older
E
eoLinker API Management 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
package balance

import (
	"fmt"
	"net/http"

	"github.com/eolinker/goku/common/auto-form"
	"github.com/eolinker/goku/console/controller"
	"github.com/eolinker/goku/console/module/balance"
	"github.com/go-sql-driver/mysql"
)

// 新增负载配置
func SaveBalance(w http.ResponseWriter, r *http.Request) {

	_, e := controller.CheckLogin(w, r, controller.OperationLoadBalance, controller.OperationEDIT)
	if e != nil {
		return
	}

	if err := r.ParseForm(); err != nil {
		controller.WriteError(w, "260000", "data", "[param_check] Parse form body error | 解析form表单参数错误", err)
		return
	}
	param := new(balance.Param)
	err := auto.SetValues(r.PostForm, param)
	if err != nil {
		controller.WriteError(w, "260000", "data", fmt.Sprintf("[param_check] %s", err.Error()), err)
		return
	}

	restlt, err := balance.Save(param)

	if err != nil {
		mysqlError, ok := err.(*mysql.MySQLError)
		if ok && mysqlError.Number == 1062 {
			controller.WriteError(w, "260002", "balance", "负载名重复", err)
			return
		}
		controller.WriteError(w, "260000", "balance", restlt, err)
		return
	}

	controller.WriteResultInfo(w, "balance", "", nil)
	return
}