package nginx_service import ( "errors" "github.com/astaxie/beego/orm" "log" "nginx-ui/server/models" "nginx-ui/server/modules/agent_server" "nginx-ui/server/modules/auth_token" ) func AgentRegister(c *agent_server.WsClient, message *models.AgentData) (interface{}, error) { log.Printf("register agent: %s,%v\n", c.Token, message) token, err := auth_token.GetByToken(c.Token) if err != nil { return nil, err } err = token.CheckValid() if err != nil { return nil, err } nginx := &models.Nginx{} err = message.ReadData(nginx) if err != nil { return nil, err } o := orm.NewOrm() exist := &models.Nginx{ Token: c.Token, } err = o.Read(exist, "Token") if err == nil { return exist, nil } if !errors.Is(err, orm.ErrNoRows) { return nil, err } nginx.Proxy = true nginx.Token = c.Token nginx.Uid = string(rune(token.Uid)) id, err := o.Insert(nginx) if err != nil { return nil, err } nginx.Id = int(id) return nginx, nil }