@@ -69,6 +69,23 @@ func (p Prerequisite) convert() *evaluation.Prerequisite {
69
69
}
70
70
}
71
71
72
+ //convert converts variation map to evaluation object
73
+ func (v VariationMap ) convert () * evaluation.VariationMap {
74
+ return & evaluation.VariationMap {
75
+ TargetSegments : * v .TargetSegments ,
76
+ Targets : convertTargetToIdentifier (* v .Targets ),
77
+ Variation : v .Variation ,
78
+ }
79
+ }
80
+
81
+ func convertTargetToIdentifier (tm []TargetMap ) []string {
82
+ result := make ([]string , 0 , len (tm ))
83
+ for j := range tm {
84
+ result = append (result , * tm [j ].Identifier )
85
+ }
86
+ return result
87
+ }
88
+
72
89
// Convert feature flag from ff server to evaluation object
73
90
func (fc FeatureConfig ) Convert () * evaluation.FeatureConfig {
74
91
vars := make (evaluation.Variations , len (fc .Variations ))
@@ -98,6 +115,13 @@ func (fc FeatureConfig) Convert() *evaluation.FeatureConfig {
98
115
if fc .DefaultServe .Variation != nil {
99
116
defaultServe .Variation = fc .DefaultServe .Variation
100
117
}
118
+ var vtm []evaluation.VariationMap
119
+ if fc .VariationToTargetMap != nil {
120
+ vtm = make ([]evaluation.VariationMap , len (* fc .VariationToTargetMap ))
121
+ for i , val := range * fc .VariationToTargetMap {
122
+ vtm [i ] = * val .convert ()
123
+ }
124
+ }
101
125
return & evaluation.FeatureConfig {
102
126
DefaultServe : defaultServe ,
103
127
Environment : fc .Environment ,
@@ -108,7 +132,7 @@ func (fc FeatureConfig) Convert() *evaluation.FeatureConfig {
108
132
Project : fc .Project ,
109
133
Rules : rules ,
110
134
State : evaluation .FeatureState (fc .State ),
111
- VariationToTargetMap : nil ,
135
+ VariationToTargetMap : vtm ,
112
136
Variations : vars ,
113
137
}
114
138
}
0 commit comments