@@ -162,14 +162,19 @@ func fetch(flagKeys []string, user UserProperties, valueOnly bool) map[string]in
162162func GetFeatureFlagString (flagName string , user UserProperties ) string {
163163 flagKeys := []string {flagName }
164164 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 ""
166169}
167170
168171func GetFeatureFlagBool (flagName string , user UserProperties ) bool {
169172 flagKeys := []string {flagName }
170173 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+ }
173178 }
174179 return false
175180}
@@ -178,8 +183,10 @@ func GetFeatureFlagPayload(flagName string, user UserProperties) map[string]inte
178183 flagKeys := []string {flagName }
179184 data := fetch (flagKeys , user , false )
180185 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+ }
183190 return mapData
184191}
185192
0 commit comments