From be6b6c174541c26c9a05ef551a904959b0d47983 Mon Sep 17 00:00:00 2001 From: Yasir Ali Date: Tue, 11 Jul 2023 18:12:51 -0400 Subject: [PATCH 1/2] Updating code and sdkKey to use decide. --- examples/main.go | 61 ++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/examples/main.go b/examples/main.go index bf04724d..379cffe3 100644 --- a/examples/main.go +++ b/examples/main.go @@ -9,53 +9,57 @@ import ( optimizely "github.com/optimizely/go-sdk" "github.com/optimizely/go-sdk/pkg/client" - "github.com/optimizely/go-sdk/pkg/config" "github.com/optimizely/go-sdk/pkg/event" "github.com/optimizely/go-sdk/pkg/logging" ) func main() { - sdkKey := "4SLpaJA1r1pgE6T2CoMs9q" + sdkKey := "RZKHh5HhUExLvpeieGZnD" logging.SetLogLevel(logging.LogLevelDebug) - user := optimizely.UserContext( - "mike ng", - map[string]interface{}{ - "country": "Unknown", - "likes_donuts": true, - }, - ) - /************* Bad SDK Key ********************/ - optimizelyClient, err := optimizely.Client("some_key") - enabled, err := optimizelyClient.IsFeatureEnabled("mutext_feat", user) - if err == config.Err403Forbidden { - fmt.Println("A Valid 403 error received:", config.Err403Forbidden) + if optimizelyClient, err := optimizely.Client("some_key"); err == nil { + userContext := optimizelyClient.CreateUserContext("user1", map[string]interface{}{ + "country": "Unknown", + "likes_donuts": true, + }) + decision := userContext.Decide("mutext_feat", nil) + fmt.Printf("Is feature enabled? %v\n", decision.Enabled) + if len(decision.Reasons[0]) > 0 { + fmt.Println("A Valid 403 error received:", decision.Reasons[0]) + } } /************* Simple usage ********************/ - optimizelyClient, err = optimizely.Client(sdkKey) - enabled, _ = optimizelyClient.IsFeatureEnabled("mutext_feat", user) - - fmt.Printf("Is feature enabled? %v\n", enabled) + if optimizelyClient, err := optimizely.Client(sdkKey); err == nil { + userContext := optimizelyClient.CreateUserContext("user1", map[string]interface{}{ + "country": "US", + "likes_donuts": false, + }) + decision := userContext.Decide("mutext_feat", nil) + fmt.Printf("Is feature enabled? %v\n", decision.Enabled) + } - /************* StaticClient ********************/ + // /************* StaticClient ********************/ optimizelyFactory := &client.OptimizelyFactory{ SDKKey: sdkKey, } - optimizelyClient, err = optimizelyFactory.StaticClient() - + optimizelyClient, err := optimizelyFactory.StaticClient() if err != nil { fmt.Printf("Error instantiating client: %s", err) return } - enabled, _ = optimizelyClient.IsFeatureEnabled("mutext_feat", user) - fmt.Printf("Is feature enabled? %v\n", enabled) + userContext := optimizelyClient.CreateUserContext("user1", map[string]interface{}{ + "country": "Unknown", + "likes_donuts": true, + }) + decision := userContext.Decide("mutext_feat", nil) + fmt.Printf("Is feature enabled? %v\n", decision.Enabled) fmt.Println() optimizelyClient.Close() // user can close dispatcher @@ -74,9 +78,16 @@ func main() { return } - enabled, _ = optimizelyClient.IsFeatureEnabled("mutext_feat", user) - fmt.Printf("Is feature enabled? %v\n", enabled) + userContext = optimizelyClient.CreateUserContext("user1", map[string]interface{}{ + "country": "Unknown", + "likes_donuts": true, + }) + decision = userContext.Decide("mutext_feat", nil) + fmt.Printf("Is feature enabled? %v\n", decision.Enabled) + + fmt.Println() optimizelyClient.Close() // user can close dispatcher + fmt.Println() /************* Setting Polling Interval ********************/ From e2d3064aebc63e86accbbca0c7b3c002796e4542 Mon Sep 17 00:00:00 2001 From: Yasir Ali Date: Tue, 11 Jul 2023 18:28:39 -0400 Subject: [PATCH 2/2] cleanup. --- examples/main.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/main.go b/examples/main.go index 379cffe3..db786345 100644 --- a/examples/main.go +++ b/examples/main.go @@ -85,9 +85,7 @@ func main() { decision = userContext.Decide("mutext_feat", nil) fmt.Printf("Is feature enabled? %v\n", decision.Enabled) - fmt.Println() optimizelyClient.Close() // user can close dispatcher - fmt.Println() /************* Setting Polling Interval ********************/