Skip to content

Commit 291b769

Browse files
Merge branch 'fm-beta' into pawel/fix_sync_on_close
2 parents 2fa0959 + 3370772 commit 291b769

13 files changed

+517
-31
lines changed

README.md

Lines changed: 107 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,14 @@ Usage:
5353
go-sdk [command]
5454
5555
Available Commands:
56-
help Help about any command
57-
is_feature_enabled Is feature enabled?
56+
help Help about any command
57+
is_feature_enabled Is feature enabled?
58+
get_enabled_features Get enabled features
59+
track Track a conversion event
60+
get_feature_variable_boolean Get feature variable boolean value
61+
get_feature_variable_double Get feature variable double value
62+
get_feature_variable_integer Get feature variable integer value
63+
get_feature_variable_string Get feature variable string value
5864
5965
Flags:
6066
-h, --help help for go-sdk
@@ -108,6 +114,105 @@ Global Flags:
108114
-s, --sdkKey string Optimizely project SDK key
109115
```
110116

117+
#### get_enabled_features
118+
```
119+
Returns enabled features for userId
120+
121+
Usage:
122+
go-sdk get_enabled_features [flags]
123+
124+
Flags:
125+
-h, --help help for get_enabled_features
126+
-u, --userId string user id
127+
128+
Global Flags:
129+
-s, --sdkKey string Optimizely project SDK key
130+
```
131+
132+
#### track
133+
```
134+
Tracks a conversion event
135+
136+
Usage:
137+
go-sdk track [flags]
138+
139+
Flags:
140+
-e, --eventKey string event key to track
141+
-h, --help help for track
142+
-u, --userId string user id
143+
144+
Global Flags:
145+
-s, --sdkKey string Optimizely project SDK key
146+
```
147+
148+
#### get_feature_variable_boolean
149+
```
150+
Returns feature variable boolean value
151+
152+
Usage:
153+
go-sdk get_feature_variable_boolean [flags]
154+
155+
Flags:
156+
-f, --featureKey string feature key for feature
157+
-v, --variableKey string variable key for feature variable
158+
-h, --help help for get_feature_variable_boolean
159+
-u, --userId string user id
160+
161+
Global Flags:
162+
-s, --sdkKey string Optimizely project SDK key
163+
```
164+
165+
#### get_feature_variable_double
166+
```
167+
Returns feature variable double value
168+
169+
Usage:
170+
go-sdk get_feature_variable_double [flags]
171+
172+
Flags:
173+
-f, --featureKey string feature key for feature
174+
-v, --variableKey string variable key for feature variable
175+
-h, --help help for get_feature_variable_double
176+
-u, --userId string user id
177+
178+
Global Flags:
179+
-s, --sdkKey string Optimizely project SDK key
180+
```
181+
182+
#### get_feature_variable_integer
183+
```
184+
Returns feature variable integer value
185+
186+
Usage:
187+
go-sdk get_feature_variable_integer [flags]
188+
189+
Flags:
190+
-f, --featureKey string feature key for feature
191+
-v, --variableKey string variable key for feature variable
192+
-h, --help help for get_feature_variable_integer
193+
-u, --userId string user id
194+
195+
Global Flags:
196+
-s, --sdkKey string Optimizely project SDK key
197+
```
198+
199+
#### get_feature_variable_string
200+
```
201+
Returns feature variable string value
202+
203+
Usage:
204+
go-sdk get_feature_variable_string [flags]
205+
206+
Flags:
207+
-f, --featureKey string feature key for feature
208+
-v, --variableKey string variable key for feature variable
209+
-h, --help help for get_feature_variable_string
210+
-u, --userId string user id
211+
212+
Global Flags:
213+
-s, --sdkKey string Optimizely project SDK key
214+
```
215+
111216
## Credits
112217

113218
This software is distributed with code from the following open source projects:

cmd/get_enabled_features.go

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/****************************************************************************
2+
* Copyright 2019, Optimizely, Inc. and contributors *
3+
* *
4+
* Licensed under the Apache License, Version 2.0 (the "License"); *
5+
* you may not use this file except in compliance with the License. *
6+
* You may obtain a copy of the License at *
7+
* *
8+
* http://www.apache.org/licenses/LICENSE-2.0 *
9+
* *
10+
* Unless required by applicable law or agreed to in writing, software *
11+
* distributed under the License is distributed on an "AS IS" BASIS, *
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13+
* See the License for the specific language governing permissions and *
14+
* limitations under the License. *
15+
***************************************************************************/
16+
17+
package cmd
18+
19+
import (
20+
"fmt"
21+
22+
"github.com/optimizely/go-sdk/optimizely/client"
23+
"github.com/optimizely/go-sdk/optimizely/entities"
24+
"github.com/spf13/cobra"
25+
)
26+
27+
var getEnabledFeaturesCmd = &cobra.Command{
28+
Use: "get_enabled_features",
29+
Short: "Get enabled features",
30+
Long: `Returns enabled features`,
31+
Run: func(cmd *cobra.Command, args []string) {
32+
optimizelyFactory := &client.OptimizelyFactory{
33+
SDKKey: sdkKey,
34+
}
35+
36+
client, err := optimizelyFactory.StaticClient()
37+
38+
if err != nil {
39+
fmt.Printf("Error instantiating client: %s\n", err)
40+
return
41+
}
42+
43+
user := entities.UserContext{
44+
ID: userID,
45+
Attributes: map[string]interface{}{},
46+
}
47+
48+
features, _ := client.GetEnabledFeatures(user)
49+
fmt.Printf("Enabled features for \"%s\": %v\n", userID, features)
50+
},
51+
}
52+
53+
func init() {
54+
rootCmd.AddCommand(getEnabledFeaturesCmd)
55+
getEnabledFeaturesCmd.Flags().StringVarP(&userID, "userId", "u", "", "user id")
56+
getEnabledFeaturesCmd.MarkFlagRequired("userId")
57+
}

cmd/get_feature_variable_boolean.go

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/****************************************************************************
2+
* Copyright 2019, Optimizely, Inc. and contributors *
3+
* *
4+
* Licensed under the Apache License, Version 2.0 (the "License"); *
5+
* you may not use this file except in compliance with the License. *
6+
* You may obtain a copy of the License at *
7+
* *
8+
* http://www.apache.org/licenses/LICENSE-2.0 *
9+
* *
10+
* Unless required by applicable law or agreed to in writing, software *
11+
* distributed under the License is distributed on an "AS IS" BASIS, *
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13+
* See the License for the specific language governing permissions and *
14+
* limitations under the License. *
15+
***************************************************************************/
16+
17+
package cmd
18+
19+
import (
20+
"fmt"
21+
22+
"github.com/optimizely/go-sdk/optimizely/client"
23+
"github.com/optimizely/go-sdk/optimizely/entities"
24+
"github.com/spf13/cobra"
25+
)
26+
27+
var getFeatureVariableBooleanCmd = &cobra.Command{
28+
Use: "get_feature_variable_boolean",
29+
Short: "Get feature variable boolean",
30+
Long: `Returns boolean feature variable`,
31+
Run: func(cmd *cobra.Command, args []string) {
32+
optimizelyFactory := &client.OptimizelyFactory{
33+
SDKKey: sdkKey,
34+
}
35+
36+
client, err := optimizelyFactory.StaticClient()
37+
38+
if err != nil {
39+
fmt.Printf("Error instantiating client: %s\n", err)
40+
return
41+
}
42+
43+
user := entities.UserContext{
44+
ID: userID,
45+
Attributes: map[string]interface{}{},
46+
}
47+
48+
value, _ := client.GetFeatureVariableBoolean(featureKey, variableKey, user)
49+
if err == nil {
50+
fmt.Printf("Feature \"%s\" variable \"%s\" boolean value: %t\n", featureKey, variableKey, value)
51+
} else {
52+
fmt.Printf("Get feature \"%s\" variable \"%s\" boolean failed with error: %s\n", featureKey, variableKey, err)
53+
}
54+
},
55+
}
56+
57+
func init() {
58+
rootCmd.AddCommand(getFeatureVariableBooleanCmd)
59+
getFeatureVariableBooleanCmd.Flags().StringVarP(&userID, "userId", "u", "", "user id")
60+
getFeatureVariableBooleanCmd.MarkFlagRequired("userId")
61+
getFeatureVariableBooleanCmd.Flags().StringVarP(&featureKey, "featureKey", "f", "", "feature key for feature")
62+
getFeatureVariableBooleanCmd.MarkFlagRequired("featureKey")
63+
getFeatureVariableBooleanCmd.Flags().StringVarP(&variableKey, "variableKey", "v", "", "variable key for feature variable")
64+
getFeatureVariableBooleanCmd.MarkFlagRequired("variableKey")
65+
}

cmd/get_feature_variable_double.go

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/****************************************************************************
2+
* Copyright 2019, Optimizely, Inc. and contributors *
3+
* *
4+
* Licensed under the Apache License, Version 2.0 (the "License"); *
5+
* you may not use this file except in compliance with the License. *
6+
* You may obtain a copy of the License at *
7+
* *
8+
* http://www.apache.org/licenses/LICENSE-2.0 *
9+
* *
10+
* Unless required by applicable law or agreed to in writing, software *
11+
* distributed under the License is distributed on an "AS IS" BASIS, *
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13+
* See the License for the specific language governing permissions and *
14+
* limitations under the License. *
15+
***************************************************************************/
16+
17+
package cmd
18+
19+
import (
20+
"fmt"
21+
22+
"github.com/optimizely/go-sdk/optimizely/client"
23+
"github.com/optimizely/go-sdk/optimizely/entities"
24+
"github.com/spf13/cobra"
25+
)
26+
27+
var getFeatureVariableDoubleCmd = &cobra.Command{
28+
Use: "get_feature_variable_double",
29+
Short: "Get feature variable double",
30+
Long: `Returns double feature variable`,
31+
Run: func(cmd *cobra.Command, args []string) {
32+
optimizelyFactory := &client.OptimizelyFactory{
33+
SDKKey: sdkKey,
34+
}
35+
36+
client, err := optimizelyFactory.StaticClient()
37+
38+
if err != nil {
39+
fmt.Printf("Error instantiating client: %s\n", err)
40+
return
41+
}
42+
43+
user := entities.UserContext{
44+
ID: userID,
45+
Attributes: map[string]interface{}{},
46+
}
47+
48+
value, err := client.GetFeatureVariableDouble(featureKey, variableKey, user)
49+
if err == nil {
50+
fmt.Printf("Feature \"%s\" variable \"%s\" double value: %v\n", featureKey, variableKey, value)
51+
} else {
52+
fmt.Printf("Get feature \"%s\" variable \"%s\" double failed with error: %s\n", featureKey, variableKey, err)
53+
}
54+
},
55+
}
56+
57+
func init() {
58+
rootCmd.AddCommand(getFeatureVariableDoubleCmd)
59+
getFeatureVariableDoubleCmd.Flags().StringVarP(&userID, "userId", "u", "", "user id")
60+
getFeatureVariableDoubleCmd.MarkFlagRequired("userId")
61+
getFeatureVariableDoubleCmd.Flags().StringVarP(&featureKey, "featureKey", "f", "", "feature key for feature")
62+
getFeatureVariableDoubleCmd.MarkFlagRequired("featureKey")
63+
getFeatureVariableDoubleCmd.Flags().StringVarP(&variableKey, "variableKey", "v", "", "variable key for feature variable")
64+
getFeatureVariableDoubleCmd.MarkFlagRequired("variableKey")
65+
}

cmd/get_feature_variable_integer.go

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/****************************************************************************
2+
* Copyright 2019, Optimizely, Inc. and contributors *
3+
* *
4+
* Licensed under the Apache License, Version 2.0 (the "License"); *
5+
* you may not use this file except in compliance with the License. *
6+
* You may obtain a copy of the License at *
7+
* *
8+
* http://www.apache.org/licenses/LICENSE-2.0 *
9+
* *
10+
* Unless required by applicable law or agreed to in writing, software *
11+
* distributed under the License is distributed on an "AS IS" BASIS, *
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13+
* See the License for the specific language governing permissions and *
14+
* limitations under the License. *
15+
***************************************************************************/
16+
17+
package cmd
18+
19+
import (
20+
"fmt"
21+
22+
"github.com/optimizely/go-sdk/optimizely/client"
23+
"github.com/optimizely/go-sdk/optimizely/entities"
24+
"github.com/spf13/cobra"
25+
)
26+
27+
var getFeatureVariableIntegerCmd = &cobra.Command{
28+
Use: "get_feature_variable_integer",
29+
Short: "Get feature variable integer",
30+
Long: `Returns integer feature variable`,
31+
Run: func(cmd *cobra.Command, args []string) {
32+
optimizelyFactory := &client.OptimizelyFactory{
33+
SDKKey: sdkKey,
34+
}
35+
36+
client, err := optimizelyFactory.StaticClient()
37+
38+
if err != nil {
39+
fmt.Printf("Error instantiating client: %s\n", err)
40+
return
41+
}
42+
43+
user := entities.UserContext{
44+
ID: userID,
45+
Attributes: map[string]interface{}{},
46+
}
47+
48+
value, err := client.GetFeatureVariableInteger(featureKey, variableKey, user)
49+
if err == nil {
50+
fmt.Printf("Feature \"%s\" variable \"%s\" integer value: %v\n", featureKey, variableKey, value)
51+
} else {
52+
fmt.Printf("Get feature \"%s\" variable \"%s\" integer failed with error: %s\n", featureKey, variableKey, err)
53+
}
54+
},
55+
}
56+
57+
func init() {
58+
rootCmd.AddCommand(getFeatureVariableIntegerCmd)
59+
getFeatureVariableIntegerCmd.Flags().StringVarP(&userID, "userId", "u", "", "user id")
60+
getFeatureVariableIntegerCmd.MarkFlagRequired("userId")
61+
getFeatureVariableIntegerCmd.Flags().StringVarP(&featureKey, "featureKey", "f", "", "feature key for feature")
62+
getFeatureVariableIntegerCmd.MarkFlagRequired("featureKey")
63+
getFeatureVariableIntegerCmd.Flags().StringVarP(&variableKey, "variableKey", "v", "", "variable key for feature variable")
64+
getFeatureVariableIntegerCmd.MarkFlagRequired("variableKey")
65+
}

0 commit comments

Comments
 (0)