diff --git a/agent/pkg/models/models.go b/agent/pkg/models/models.go index bf8c0cb7b..ef3e4d4d0 100644 --- a/agent/pkg/models/models.go +++ b/agent/pkg/models/models.go @@ -54,17 +54,9 @@ type BaseEntryDetails struct { } type ApplicableRules struct { - Latency int64 `json:"latency,omitempty"` - Status bool `json:"status,omitempty"` - NumberOfRules int `json:"numberOfRules,omitempty"` -} - -func NewApplicableRules(status bool, latency int64, number int) ApplicableRules { - ar := ApplicableRules{} - ar.Status = status - ar.Latency = latency - ar.NumberOfRules = number - return ar + Latency int64 `json:"latency,omitempty"` + Status bool `json:"status,omitempty"` + NumberOfRules int `json:"numberOfRules,omitempty"` } type FullEntryDetails struct { @@ -219,8 +211,6 @@ func (fewp *FullEntryWithPolicy) UnmarshalData(entry *MizuEntry) error { } func RunValidationRulesState(harEntry har.Entry, service string) ApplicableRules { - numberOfRules, resultPolicyToSend := rules.MatchRequestPolicy(harEntry, service) - statusPolicyToSend, latency, numberOfRules := rules.PassedValidationRules(resultPolicyToSend, numberOfRules) - ar := NewApplicableRules(statusPolicyToSend, latency, numberOfRules) - return ar + _, resultPolicyToSend := rules.MatchRequestPolicy(harEntry, service) + return rules.PassedValidationRules(resultPolicyToSend) } diff --git a/agent/pkg/rules/models.go b/agent/pkg/rules/models.go index 2107e6447..1af44331f 100644 --- a/agent/pkg/rules/models.go +++ b/agent/pkg/rules/models.go @@ -3,6 +3,7 @@ package rules import ( "encoding/json" "fmt" + "mizuserver/pkg/models" "reflect" "regexp" "strings" @@ -92,19 +93,35 @@ func MatchRequestPolicy(harEntry har.Entry, service string) (int, []RulesMatched return len(enforcePolicy.Rules), resultPolicyToSend } -func PassedValidationRules(rulesMatched []RulesMatched, numberOfRules int) (bool, int64, int) { +func PassedValidationRules(rulesMatched []RulesMatched) models.ApplicableRules { if len(rulesMatched) == 0 { - return false, 0, 0 + return models.ApplicableRules{ + Status: false, + Latency: 0, + NumberOfRules: 0, + } } for _, rule := range rulesMatched { if rule.Matched == false { - return false, -1, len(rulesMatched) + return models.ApplicableRules{ + Status: false, + Latency: -1, + NumberOfRules: len(rulesMatched), + } } } for _, rule := range rulesMatched { if strings.ToLower(rule.Rule.Type) == "latency" { - return true, rule.Rule.Latency, len(rulesMatched) + return models.ApplicableRules{ + Status: true, + Latency: rule.Rule.Latency, + NumberOfRules: len(rulesMatched), + } } } - return true, -1, len(rulesMatched) + return models.ApplicableRules{ + Status: true, + Latency: -1, + NumberOfRules: len(rulesMatched), + } }