mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 07:50:25 +08:00 
			
		
		
		
	添加快捷添加和删除网站源站API
This commit is contained in:
		@@ -538,6 +538,17 @@ func (this *OriginDAO) CheckUserOrigin(tx *dbs.Tx, userId int64, originId int64)
 | 
				
			|||||||
	return SharedReverseProxyDAO.CheckUserReverseProxy(tx, userId, reverseProxyId)
 | 
						return SharedReverseProxyDAO.CheckUserReverseProxy(tx, userId, reverseProxyId)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ExistsOrigin 检查源站是否存在
 | 
				
			||||||
 | 
					func (this *OriginDAO) ExistsOrigin(tx *dbs.Tx, originId int64) (bool, error) {
 | 
				
			||||||
 | 
						if originId <= 0 {
 | 
				
			||||||
 | 
							return false, nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return this.Query(tx).
 | 
				
			||||||
 | 
							Pk(originId).
 | 
				
			||||||
 | 
							State(OriginStateEnabled).
 | 
				
			||||||
 | 
							Exist()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// NotifyUpdate 通知更新
 | 
					// NotifyUpdate 通知更新
 | 
				
			||||||
func (this *OriginDAO) NotifyUpdate(tx *dbs.Tx, originId int64) error {
 | 
					func (this *OriginDAO) NotifyUpdate(tx *dbs.Tx, originId int64) error {
 | 
				
			||||||
	reverseProxyId, err := SharedReverseProxyDAO.FindReverseProxyContainsOriginId(tx, originId)
 | 
						reverseProxyId, err := SharedReverseProxyDAO.FindReverseProxyContainsOriginId(tx, originId)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -376,14 +376,14 @@ func (this *ReverseProxyDAO) UpdateReverseProxyScheduling(tx *dbs.Tx, reversePro
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// UpdateReverseProxyPrimaryOrigins 修改主要源站
 | 
					// UpdateReverseProxyPrimaryOrigins 修改主要源站
 | 
				
			||||||
func (this *ReverseProxyDAO) UpdateReverseProxyPrimaryOrigins(tx *dbs.Tx, reverseProxyId int64, origins []byte) error {
 | 
					func (this *ReverseProxyDAO) UpdateReverseProxyPrimaryOrigins(tx *dbs.Tx, reverseProxyId int64, originRefs []byte) error {
 | 
				
			||||||
	if reverseProxyId <= 0 {
 | 
						if reverseProxyId <= 0 {
 | 
				
			||||||
		return errors.New("invalid reverseProxyId")
 | 
							return errors.New("invalid reverseProxyId")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var op = NewReverseProxyOperator()
 | 
						var op = NewReverseProxyOperator()
 | 
				
			||||||
	op.Id = reverseProxyId
 | 
						op.Id = reverseProxyId
 | 
				
			||||||
	if len(origins) > 0 {
 | 
						if len(originRefs) > 0 {
 | 
				
			||||||
		op.PrimaryOrigins = origins
 | 
							op.PrimaryOrigins = originRefs
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		op.PrimaryOrigins = "[]"
 | 
							op.PrimaryOrigins = "[]"
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1,31 @@
 | 
				
			|||||||
package models
 | 
					package models
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"encoding/json"
 | 
				
			||||||
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/logs"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// DecodePrimaryOrigins 解析主要源站
 | 
				
			||||||
 | 
					func (this *ReverseProxy) DecodePrimaryOrigins() []*serverconfigs.OriginRef {
 | 
				
			||||||
 | 
						var refs = []*serverconfigs.OriginRef{}
 | 
				
			||||||
 | 
						if IsNotNull(this.PrimaryOrigins) {
 | 
				
			||||||
 | 
							err := json.Unmarshal(this.PrimaryOrigins, &refs)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								logs.Error(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return refs
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// DecodeBackupOrigins 解析备用源站
 | 
				
			||||||
 | 
					func (this *ReverseProxy) DecodeBackupOrigins() []*serverconfigs.OriginRef {
 | 
				
			||||||
 | 
						var refs = []*serverconfigs.OriginRef{}
 | 
				
			||||||
 | 
						if IsNotNull(this.BackupOrigins) {
 | 
				
			||||||
 | 
							err := json.Unmarshal(this.BackupOrigins, &refs)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								logs.Error(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return refs
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -757,14 +757,14 @@ func (this *ServerDAO) UpdateServerAuditing(tx *dbs.Tx, serverId int64, result *
 | 
				
			|||||||
	return this.NotifyDNSUpdate(tx, serverId)
 | 
						return this.NotifyDNSUpdate(tx, serverId)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// UpdateServerReverseProxy 修改反向代理配置
 | 
					// UpdateServerReverseProxyRef 修改反向代理配置
 | 
				
			||||||
func (this *ServerDAO) UpdateServerReverseProxy(tx *dbs.Tx, serverId int64, config []byte) error {
 | 
					func (this *ServerDAO) UpdateServerReverseProxyRef(tx *dbs.Tx, serverId int64, reverseProxyRefJSON []byte) error {
 | 
				
			||||||
	if serverId <= 0 {
 | 
						if serverId <= 0 {
 | 
				
			||||||
		return errors.New("serverId should not be smaller than 0")
 | 
							return errors.New("serverId should not be smaller than 0")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var op = NewServerOperator()
 | 
						var op = NewServerOperator()
 | 
				
			||||||
	op.Id = serverId
 | 
						op.Id = serverId
 | 
				
			||||||
	op.ReverseProxy = JSONBytes(config)
 | 
						op.ReverseProxy = JSONBytes(reverseProxyRefJSON)
 | 
				
			||||||
	err := this.Save(tx, op)
 | 
						err := this.Save(tx, op)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
@@ -773,6 +773,28 @@ func (this *ServerDAO) UpdateServerReverseProxy(tx *dbs.Tx, serverId int64, conf
 | 
				
			|||||||
	return this.NotifyUpdate(tx, serverId)
 | 
						return this.NotifyUpdate(tx, serverId)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// CreateServerReverseProxyRef 创建反向代理配置
 | 
				
			||||||
 | 
					func (this *ServerDAO) CreateServerReverseProxyRef(tx *dbs.Tx, userId int64, serverId int64) (reverseProxyId int64, err error) {
 | 
				
			||||||
 | 
						reverseProxyId, err = SharedReverseProxyDAO.CreateReverseProxy(tx, 0, userId, nil, []byte("[]"), []byte("[]"))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return 0, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var reverseProxyRef = &serverconfigs.ReverseProxyRef{
 | 
				
			||||||
 | 
							IsPrior:        false,
 | 
				
			||||||
 | 
							IsOn:           true,
 | 
				
			||||||
 | 
							ReverseProxyId: reverseProxyId,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						reverseProxyRefJSON, err := json.Marshal(reverseProxyRef)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return 0, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						err = this.UpdateServerReverseProxyRef(tx, serverId, reverseProxyRefJSON)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return 0, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return reverseProxyId, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// CountAllEnabledServers 计算所有可用服务数量
 | 
					// CountAllEnabledServers 计算所有可用服务数量
 | 
				
			||||||
func (this *ServerDAO) CountAllEnabledServers(tx *dbs.Tx) (int64, error) {
 | 
					func (this *ServerDAO) CountAllEnabledServers(tx *dbs.Tx) (int64, error) {
 | 
				
			||||||
	return this.Query(tx).
 | 
						return this.Query(tx).
 | 
				
			||||||
@@ -1362,8 +1384,8 @@ func (this *ServerDAO) ComposeServerConfig(tx *dbs.Tx, server *Server, ignoreCer
 | 
				
			|||||||
	return config, nil
 | 
						return config, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// FindReverseProxyRef 根据条件获取反向代理配置
 | 
					// FindServerReverseProxyRef 根据条件获取反向代理配置
 | 
				
			||||||
func (this *ServerDAO) FindReverseProxyRef(tx *dbs.Tx, serverId int64) (*serverconfigs.ReverseProxyRef, error) {
 | 
					func (this *ServerDAO) FindServerReverseProxyRef(tx *dbs.Tx, serverId int64) (*serverconfigs.ReverseProxyRef, error) {
 | 
				
			||||||
	reverseProxy, err := this.Query(tx).
 | 
						reverseProxy, err := this.Query(tx).
 | 
				
			||||||
		Pk(serverId).
 | 
							Pk(serverId).
 | 
				
			||||||
		Result("reverseProxy").
 | 
							Result("reverseProxy").
 | 
				
			||||||
@@ -1374,7 +1396,7 @@ func (this *ServerDAO) FindReverseProxyRef(tx *dbs.Tx, serverId int64) (*serverc
 | 
				
			|||||||
	if len(reverseProxy) == 0 || reverseProxy == "null" {
 | 
						if len(reverseProxy) == 0 || reverseProxy == "null" {
 | 
				
			||||||
		return nil, nil
 | 
							return nil, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	config := &serverconfigs.ReverseProxyRef{}
 | 
						var config = &serverconfigs.ReverseProxyRef{}
 | 
				
			||||||
	err = json.Unmarshal([]byte(reverseProxy), config)
 | 
						err = json.Unmarshal([]byte(reverseProxy), config)
 | 
				
			||||||
	return config, err
 | 
						return config, err
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -2998,6 +3020,17 @@ func (this *ServerDAO) CheckServerPlanQuota(tx *dbs.Tx, serverId int64, countSer
 | 
				
			|||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ExistsServer 检查网站是否存在
 | 
				
			||||||
 | 
					func (this *ServerDAO) ExistsServer(tx *dbs.Tx, serverId int64) (bool, error) {
 | 
				
			||||||
 | 
						if serverId <= 0 {
 | 
				
			||||||
 | 
							return false, nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return this.Query(tx).
 | 
				
			||||||
 | 
							Pk(serverId).
 | 
				
			||||||
 | 
							State(ServerStateEnabled).
 | 
				
			||||||
 | 
							Exist()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// NotifyUpdate 同步服务所在的集群
 | 
					// NotifyUpdate 同步服务所在的集群
 | 
				
			||||||
func (this *ServerDAO) NotifyUpdate(tx *dbs.Tx, serverId int64) error {
 | 
					func (this *ServerDAO) NotifyUpdate(tx *dbs.Tx, serverId int64) error {
 | 
				
			||||||
	if serverId <= 0 {
 | 
						if serverId <= 0 {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -695,6 +695,218 @@ func (this *ServerService) CreateBasicTCPServer(ctx context.Context, req *pb.Cre
 | 
				
			|||||||
	return &pb.CreateBasicTCPServerResponse{ServerId: serverId}, nil
 | 
						return &pb.CreateBasicTCPServerResponse{ServerId: serverId}, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// AddServerOrigin 为网站添加源站
 | 
				
			||||||
 | 
					func (this *ServerService) AddServerOrigin(ctx context.Context, req *pb.AddServerOriginRequest) (*pb.RPCSuccess, error) {
 | 
				
			||||||
 | 
						_, userId, err := this.ValidateAdminAndUser(ctx, true)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if req.ServerId <= 0 {
 | 
				
			||||||
 | 
							return nil, errors.New("require 'serverId'")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if req.OriginId <= 0 {
 | 
				
			||||||
 | 
							return nil, errors.New("require 'originId'")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var tx = this.NullTx()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// check user
 | 
				
			||||||
 | 
						if userId > 0 {
 | 
				
			||||||
 | 
							err = models.SharedServerDAO.CheckUserServer(tx, userId, req.ServerId)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							err = models.SharedOriginDAO.CheckUserOrigin(tx, userId, req.OriginId)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							// check server
 | 
				
			||||||
 | 
							existsServer, err := models.SharedServerDAO.ExistsServer(tx, req.ServerId)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if !existsServer {
 | 
				
			||||||
 | 
								return nil, errors.New("server '" + types.String(req.ServerId) + "' not found")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// check origin
 | 
				
			||||||
 | 
							existsOrigin, err := models.SharedOriginDAO.ExistsOrigin(tx, req.OriginId)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if !existsOrigin {
 | 
				
			||||||
 | 
								return nil, errors.New("origin '" + types.String(req.OriginId) + "' not found")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						reverseProxyRef, err := models.SharedServerDAO.FindServerReverseProxyRef(tx, req.ServerId)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if reverseProxyRef == nil || reverseProxyRef.ReverseProxyId <= 0 {
 | 
				
			||||||
 | 
							reverseProxyId, err := models.SharedServerDAO.CreateServerReverseProxyRef(tx, userId, req.ServerId)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							reverseProxyRef = &serverconfigs.ReverseProxyRef{
 | 
				
			||||||
 | 
								IsPrior:        false,
 | 
				
			||||||
 | 
								IsOn:           true,
 | 
				
			||||||
 | 
								ReverseProxyId: reverseProxyId,
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						reverseProxy, err := models.SharedReverseProxyDAO.FindEnabledReverseProxy(tx, reverseProxyRef.ReverseProxyId)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if reverseProxy == nil {
 | 
				
			||||||
 | 
							return nil, errors.New("can not found reverse proxy")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if req.IsPrimary {
 | 
				
			||||||
 | 
							var refs = reverseProxy.DecodePrimaryOrigins()
 | 
				
			||||||
 | 
							refs = append(refs, &serverconfigs.OriginRef{
 | 
				
			||||||
 | 
								IsOn:     true,
 | 
				
			||||||
 | 
								OriginId: req.OriginId,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							refsJSON, err := json.Marshal(refs)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							err = models.SharedReverseProxyDAO.UpdateReverseProxyPrimaryOrigins(tx, int64(reverseProxy.Id), refsJSON)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							var refs = reverseProxy.DecodeBackupOrigins()
 | 
				
			||||||
 | 
							refs = append(refs, &serverconfigs.OriginRef{
 | 
				
			||||||
 | 
								IsOn:     true,
 | 
				
			||||||
 | 
								OriginId: req.OriginId,
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							refsJSON, err := json.Marshal(refs)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							err = models.SharedReverseProxyDAO.UpdateReverseProxyBackupOrigins(tx, int64(reverseProxy.Id), refsJSON)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return this.Success()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// DeleteServerOrigin 从网站中删除某个源站
 | 
				
			||||||
 | 
					func (this *ServerService) DeleteServerOrigin(ctx context.Context, req *pb.DeleteServerOriginRequest) (*pb.RPCSuccess, error) {
 | 
				
			||||||
 | 
						_, userId, err := this.ValidateAdminAndUser(ctx, true)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if req.ServerId <= 0 {
 | 
				
			||||||
 | 
							return nil, errors.New("require 'serverId'")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if req.OriginId <= 0 {
 | 
				
			||||||
 | 
							return nil, errors.New("require 'originId'")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var tx = this.NullTx()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// check user
 | 
				
			||||||
 | 
						if userId > 0 {
 | 
				
			||||||
 | 
							err = models.SharedServerDAO.CheckUserServer(tx, userId, req.ServerId)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							err = models.SharedOriginDAO.CheckUserOrigin(tx, userId, req.OriginId)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							// check server
 | 
				
			||||||
 | 
							existsServer, err := models.SharedServerDAO.ExistsServer(tx, req.ServerId)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if !existsServer {
 | 
				
			||||||
 | 
								return nil, errors.New("server '" + types.String(req.ServerId) + "' not found")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// check origin
 | 
				
			||||||
 | 
							existsOrigin, err := models.SharedOriginDAO.ExistsOrigin(tx, req.OriginId)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if !existsOrigin {
 | 
				
			||||||
 | 
								return nil, errors.New("origin '" + types.String(req.OriginId) + "' not found")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						reverseProxyRef, err := models.SharedServerDAO.FindServerReverseProxyRef(tx, req.ServerId)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if reverseProxyRef == nil || reverseProxyRef.ReverseProxyId <= 0 {
 | 
				
			||||||
 | 
							return this.Success()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						reverseProxy, err := models.SharedReverseProxyDAO.FindEnabledReverseProxy(tx, reverseProxyRef.ReverseProxyId)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if reverseProxy == nil {
 | 
				
			||||||
 | 
							return this.Success()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var primaryOrigins = reverseProxy.DecodePrimaryOrigins()
 | 
				
			||||||
 | 
						var newPrimaryOrigins = []*serverconfigs.OriginRef{}
 | 
				
			||||||
 | 
						var found = false
 | 
				
			||||||
 | 
						for _, origin := range primaryOrigins {
 | 
				
			||||||
 | 
							if origin.OriginId == req.OriginId {
 | 
				
			||||||
 | 
								found = true
 | 
				
			||||||
 | 
								continue
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							newPrimaryOrigins = append(newPrimaryOrigins, origin)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if found {
 | 
				
			||||||
 | 
							newPrimaryOriginsJSON, err := json.Marshal(newPrimaryOrigins)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							err = models.SharedReverseProxyDAO.UpdateReverseProxyPrimaryOrigins(tx, int64(reverseProxy.Id), newPrimaryOriginsJSON)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var backupOrigins = reverseProxy.DecodeBackupOrigins()
 | 
				
			||||||
 | 
						var newBackupOrigins = []*serverconfigs.OriginRef{}
 | 
				
			||||||
 | 
						found = false
 | 
				
			||||||
 | 
						for _, origin := range backupOrigins {
 | 
				
			||||||
 | 
							if origin.OriginId == req.OriginId {
 | 
				
			||||||
 | 
								found = true
 | 
				
			||||||
 | 
								continue
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							newBackupOrigins = append(newBackupOrigins, origin)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if found {
 | 
				
			||||||
 | 
							newBackupOriginsJSON, err := json.Marshal(newBackupOrigins)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							err = models.SharedReverseProxyDAO.UpdateReverseProxyBackupOrigins(tx, int64(reverseProxy.Id), newBackupOriginsJSON)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return this.Success()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// UpdateServerBasic 修改服务基本信息
 | 
					// UpdateServerBasic 修改服务基本信息
 | 
				
			||||||
func (this *ServerService) UpdateServerBasic(ctx context.Context, req *pb.UpdateServerBasicRequest) (*pb.RPCSuccess, error) {
 | 
					func (this *ServerService) UpdateServerBasic(ctx context.Context, req *pb.UpdateServerBasicRequest) (*pb.RPCSuccess, error) {
 | 
				
			||||||
	// 校验请求
 | 
						// 校验请求
 | 
				
			||||||
@@ -1001,7 +1213,7 @@ func (this *ServerService) UpdateServerReverseProxy(ctx context.Context, req *pb
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 修改配置
 | 
						// 修改配置
 | 
				
			||||||
	err = models.SharedServerDAO.UpdateServerReverseProxy(tx, req.ServerId, req.ReverseProxyJSON)
 | 
						err = models.SharedServerDAO.UpdateServerReverseProxyRef(tx, req.ServerId, req.ReverseProxyJSON)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -1705,7 +1917,7 @@ func (this *ServerService) FindAndInitServerReverseProxyConfig(ctx context.Conte
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	var tx = this.NullTx()
 | 
						var tx = this.NullTx()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	reverseProxyRef, err := models.SharedServerDAO.FindReverseProxyRef(tx, req.ServerId)
 | 
						reverseProxyRef, err := models.SharedServerDAO.FindServerReverseProxyRef(tx, req.ServerId)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -1724,7 +1936,7 @@ func (this *ServerService) FindAndInitServerReverseProxyConfig(ctx context.Conte
 | 
				
			|||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		err = models.SharedServerDAO.UpdateServerReverseProxy(tx, req.ServerId, refJSON)
 | 
							err = models.SharedServerDAO.UpdateServerReverseProxyRef(tx, req.ServerId, refJSON)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user