Prechádzať zdrojové kódy

refactor(internal/service/api/waf): 重构 WAF 数据准备流程- 将获取前置配置的逻辑提取到单独的 getRequire 方法中
- 优化 PrepareWafData 方法的结构,提高代码可读性和可维护性
-简化 ConfigureCCProtection 方法的逻辑

fusu 1 deň pred
rodič
commit
bb95b62aa3
1 zmenil súbory, kde vykonal 20 pridanie a 9 odobranie
  1. 20 9
      internal/service/api/waf/aidedweb.go

+ 20 - 9
internal/service/api/waf/aidedweb.go

@@ -194,9 +194,8 @@ func (s *aidedWebService) BuildWebRuleModel(reqData *v1.WebForwardingDataRequest
 	}
 }
 
-// PrepareWafData 准备WAF数据
-// 职责:协调整个流程,负责获取前置配置和组装最终的 formData。
-func (s *aidedWebService) PrepareWafData(ctx context.Context, req *v1.WebForwardingRequest) (RequireResponse, v1.Website, error) {
+// getRequire 获取前置配置
+func (s *aidedWebService) getRequire (ctx context.Context, req *v1.WebForwardingRequest) (RequireResponse, error) {
 	// 1. 获取基础配置
 	require, err := s.wafformatter.Require(ctx, v1.GlobalRequire{
 		HostId:  req.HostId,
@@ -204,10 +203,24 @@ func (s *aidedWebService) PrepareWafData(ctx context.Context, req *v1.WebForward
 		Comment: req.WebForwardingData.Comment,
 	})
 	if err != nil {
-		return RequireResponse{}, v1.Website{}, fmt.Errorf("获取WAF前置配置失败: %w", err)
+		return RequireResponse{},  fmt.Errorf("获取WAF前置配置失败: %w", err)
 	}
 	if require.Uid == 0 {
-		return RequireResponse{}, v1.Website{}, fmt.Errorf("请先配置实例")
+		return RequireResponse{},  fmt.Errorf("请先配置实例")
+	}
+
+	return require, nil
+
+}
+
+// PrepareWafData 准备WAF数据
+// 职责:协调整个流程,负责获取前置配置和组装最终的 formData。
+func (s *aidedWebService) PrepareWafData(ctx context.Context, req *v1.WebForwardingRequest) (RequireResponse, v1.Website, error) {
+
+	// 1. 获取前置配置
+	require, err := s.getRequire(ctx, req)
+	if err != nil {
+		return RequireResponse{}, v1.Website{}, err
 	}
 
 	// 2. 调用辅助函数,构建核心的代理配置 (将复杂逻辑封装起来)
@@ -804,10 +817,8 @@ func (s *aidedWebService) ConfigureProxyProtocol(ctx context.Context, req *v1.We
 
 // ConfigureCCProtection 配置CC防护
 func (s *aidedWebService) ConfigureCCProtection(ctx context.Context, req *v1.WebForwardingRequest, webId int64) error {
-	if req.WebForwardingData.CcConfig.IsOn {
-		if err := s.cc.EditCcConfig(ctx, webId, req.WebForwardingData.CcConfig); err != nil {
-			return fmt.Errorf("配置CC防护失败: %w", err)
-		}
+	if err := s.cc.EditCcConfig(ctx, webId, req.WebForwardingData.CcConfig); err != nil {
+		return fmt.Errorf("配置CC防护失败: %w", err)
 	}
 	return nil
 }