@@ -89,8 +89,8 @@ func Initialize() {
89
89
}
90
90
}
91
91
92
- func InitializeWithConfig (conf AmplitudeConfig ) {
93
- client = local .Initialize (LocalEvaluationDeploymentKey , (* local .Config )(& conf ))
92
+ func InitializeWithConfig (conf AmplitudeConfig , deploymentKey string ) {
93
+ client = local .Initialize (deploymentKey , (* local .Config )(& conf ))
94
94
err := client .Start ()
95
95
if err != nil {
96
96
err = fmt .Errorf ("unable to create local evaluation client with given config %+v with error %s" , conf , err .Error ())
@@ -107,8 +107,8 @@ func contains(s []string, e string) bool {
107
107
return false
108
108
}
109
109
110
- func fetch (flagKeys []string , user UserProperties ) map [string ]AmplitudeVariant {
111
- variants := make (map [string ]AmplitudeVariant )
110
+ func fetch (flagKeys []string , user UserProperties , valueOnly bool ) map [string ]interface {} {
111
+ variants := make (map [string ]interface {} )
112
112
userProp := map [string ]interface {}{
113
113
"org_id" : user .OrgId ,
114
114
"org_name" : user .OrgName ,
@@ -135,49 +135,56 @@ func fetch(flagKeys []string, user UserProperties) map[string]AmplitudeVariant {
135
135
continue
136
136
}
137
137
if ! filter {
138
- variants [k ] = AmplitudeVariant {
139
- Value : v .Variant .Key ,
140
- Payload : v .Variant .Payload ,
138
+ if valueOnly {
139
+ variants [k ] = v .Variant .Key
140
+ } else {
141
+ variants [k ] = AmplitudeVariant {
142
+ Value : v .Variant .Key ,
143
+ Payload : v .Variant .Payload ,
144
+ }
141
145
}
142
146
continue
143
147
}
144
148
if contains (flagKeys , k ) {
145
- variants [k ] = AmplitudeVariant {
146
- Value : v .Variant .Key ,
147
- Payload : v .Variant .Payload ,
149
+ if valueOnly {
150
+ variants [k ] = v .Variant .Key
151
+ } else {
152
+ variants [k ] = AmplitudeVariant {
153
+ Value : v .Variant .Key ,
154
+ Payload : v .Variant .Payload ,
155
+ }
148
156
}
149
157
}
150
158
}
151
-
152
159
return variants
153
160
}
154
161
155
162
func GetFeatureFlagString (flagName string , user UserProperties ) string {
156
163
flagKeys := []string {flagName }
157
- data := fetch (flagKeys , user )
158
- return data [flagName ].Value
164
+ data := fetch (flagKeys , user , false )
165
+ return data [flagName ].( AmplitudeVariant ). Value
159
166
}
160
167
161
168
func GetFeatureFlagBool (flagName string , user UserProperties ) bool {
162
169
flagKeys := []string {flagName }
163
- data := fetch (flagKeys , user )
164
- if val , err := strconv .ParseBool (data [flagName ].Value ); err == nil {
170
+ data := fetch (flagKeys , user , false )
171
+ if val , err := strconv .ParseBool (data [flagName ].( AmplitudeVariant ). Value ); err == nil {
165
172
return val
166
173
}
167
174
return false
168
175
}
169
176
170
177
func GetFeatureFlagPayload (flagName string , user UserProperties ) map [string ]interface {} {
171
178
flagKeys := []string {flagName }
172
- data := fetch (flagKeys , user )
179
+ data := fetch (flagKeys , user , false )
173
180
mapData := make (map [string ]interface {})
174
- mapData ["value" ] = data [flagName ].Value
175
- mapData ["payload" ] = data [flagName ].Payload
181
+ mapData ["value" ] = data [flagName ].( AmplitudeVariant ). Value
182
+ mapData ["payload" ] = data [flagName ].( AmplitudeVariant ). Payload
176
183
return mapData
177
184
}
178
185
179
- func GetFeatureFlagByOrg (user UserProperties ) map [string ]AmplitudeVariant {
186
+ func GetFeatureFlagByOrg (user UserProperties ) map [string ]interface {} {
180
187
flagKeys := []string {}
181
- data := fetch (flagKeys , user )
188
+ data := fetch (flagKeys , user , true )
182
189
return data
183
190
}
0 commit comments