@@ -162,14 +162,19 @@ func fetch(flagKeys []string, user UserProperties, valueOnly bool) map[string]in
162
162
func GetFeatureFlagString (flagName string , user UserProperties ) string {
163
163
flagKeys := []string {flagName }
164
164
data := fetch (flagKeys , user , false )
165
- return data [flagName ].(AmplitudeVariant ).Value
165
+ if flagData , ok := data [flagName ].(AmplitudeVariant ); ok {
166
+ return flagData .Value
167
+ }
168
+ return ""
166
169
}
167
170
168
171
func GetFeatureFlagBool (flagName string , user UserProperties ) bool {
169
172
flagKeys := []string {flagName }
170
173
data := fetch (flagKeys , user , false )
171
- if val , err := strconv .ParseBool (data [flagName ].(AmplitudeVariant ).Value ); err == nil {
172
- return val
174
+ if flagData , ok := data [flagName ].(AmplitudeVariant ); ok {
175
+ if val , err := strconv .ParseBool (flagData .Value ); err == nil {
176
+ return val
177
+ }
173
178
}
174
179
return false
175
180
}
@@ -178,8 +183,10 @@ func GetFeatureFlagPayload(flagName string, user UserProperties) map[string]inte
178
183
flagKeys := []string {flagName }
179
184
data := fetch (flagKeys , user , false )
180
185
mapData := make (map [string ]interface {})
181
- mapData ["value" ] = data [flagName ].(AmplitudeVariant ).Value
182
- mapData ["payload" ] = data [flagName ].(AmplitudeVariant ).Payload
186
+ if flagData , ok := data [flagName ].(AmplitudeVariant ); ok {
187
+ mapData ["value" ] = flagData .Value
188
+ mapData ["payload" ] = flagData .Payload
189
+ }
183
190
return mapData
184
191
}
185
192
0 commit comments