@@ -9,53 +9,57 @@ import (
99
1010 optimizely "github.com/optimizely/go-sdk"
1111 "github.com/optimizely/go-sdk/pkg/client"
12- "github.com/optimizely/go-sdk/pkg/config"
1312 "github.com/optimizely/go-sdk/pkg/event"
1413 "github.com/optimizely/go-sdk/pkg/logging"
1514)
1615
1716func main () {
18- sdkKey := "4SLpaJA1r1pgE6T2CoMs9q "
17+ sdkKey := "RZKHh5HhUExLvpeieGZnD "
1918 logging .SetLogLevel (logging .LogLevelDebug )
2019
21- user := optimizely .UserContext (
22- "mike ng" ,
23- map [string ]interface {}{
24- "country" : "Unknown" ,
25- "likes_donuts" : true ,
26- },
27- )
28-
2920 /************* Bad SDK Key ********************/
3021
31- optimizelyClient , err := optimizely .Client ("some_key" )
32- enabled , err := optimizelyClient .IsFeatureEnabled ("mutext_feat" , user )
33- if err == config .Err403Forbidden {
34- fmt .Println ("A Valid 403 error received:" , config .Err403Forbidden )
22+ if optimizelyClient , err := optimizely .Client ("some_key" ); err == nil {
23+ userContext := optimizelyClient .CreateUserContext ("user1" , map [string ]interface {}{
24+ "country" : "Unknown" ,
25+ "likes_donuts" : true ,
26+ })
27+ decision := userContext .Decide ("mutext_feat" , nil )
28+ fmt .Printf ("Is feature enabled? %v\n " , decision .Enabled )
29+ if len (decision .Reasons [0 ]) > 0 {
30+ fmt .Println ("A Valid 403 error received:" , decision .Reasons [0 ])
31+ }
3532 }
3633
3734 /************* Simple usage ********************/
3835
39- optimizelyClient , err = optimizely .Client (sdkKey )
40- enabled , _ = optimizelyClient .IsFeatureEnabled ("mutext_feat" , user )
41-
42- fmt .Printf ("Is feature enabled? %v\n " , enabled )
36+ if optimizelyClient , err := optimizely .Client (sdkKey ); err == nil {
37+ userContext := optimizelyClient .CreateUserContext ("user1" , map [string ]interface {}{
38+ "country" : "US" ,
39+ "likes_donuts" : false ,
40+ })
41+ decision := userContext .Decide ("mutext_feat" , nil )
42+ fmt .Printf ("Is feature enabled? %v\n " , decision .Enabled )
43+ }
4344
44- /************* StaticClient ********************/
45+ // / ************* StaticClient ********************/
4546
4647 optimizelyFactory := & client.OptimizelyFactory {
4748 SDKKey : sdkKey ,
4849 }
4950
50- optimizelyClient , err = optimizelyFactory .StaticClient ()
51-
51+ optimizelyClient , err := optimizelyFactory .StaticClient ()
5252 if err != nil {
5353 fmt .Printf ("Error instantiating client: %s" , err )
5454 return
5555 }
5656
57- enabled , _ = optimizelyClient .IsFeatureEnabled ("mutext_feat" , user )
58- fmt .Printf ("Is feature enabled? %v\n " , enabled )
57+ userContext := optimizelyClient .CreateUserContext ("user1" , map [string ]interface {}{
58+ "country" : "Unknown" ,
59+ "likes_donuts" : true ,
60+ })
61+ decision := userContext .Decide ("mutext_feat" , nil )
62+ fmt .Printf ("Is feature enabled? %v\n " , decision .Enabled )
5963
6064 fmt .Println ()
6165 optimizelyClient .Close () // user can close dispatcher
@@ -74,8 +78,13 @@ func main() {
7478 return
7579 }
7680
77- enabled , _ = optimizelyClient .IsFeatureEnabled ("mutext_feat" , user )
78- fmt .Printf ("Is feature enabled? %v\n " , enabled )
81+ userContext = optimizelyClient .CreateUserContext ("user1" , map [string ]interface {}{
82+ "country" : "Unknown" ,
83+ "likes_donuts" : true ,
84+ })
85+ decision = userContext .Decide ("mutext_feat" , nil )
86+ fmt .Printf ("Is feature enabled? %v\n " , decision .Enabled )
87+
7988 optimizelyClient .Close () // user can close dispatcher
8089
8190 /************* Setting Polling Interval ********************/
0 commit comments