1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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
- }
|