Skip to content

Commit 08ed923

Browse files
stephenmcconkeyDave Johnston
andauthored
[FFM-3689]: Add Check to see if analytics are enabled before trying to enqueue them (#34)
* Add Check to see if analytics are enabled before trying to enqueue them * fix linting issues Co-authored-by: Dave Johnston <dave.johnston@harness.io>
1 parent c1ec709 commit 08ed923

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

featureflags/client.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@
2323

2424
class CfClient(object):
2525
def __init__(
26-
self, sdk_key: str, *options: Callable, config: Optional[Config] = None
26+
self, sdk_key: str,
27+
*options: Callable,
28+
config: Optional[Config] = None
2729
):
2830
self._client: Optional[Client] = None
2931
self._auth_token: Optional[str] = None
@@ -97,7 +99,7 @@ def authenticate(self):
9799
self._auth_token = response.auth_token
98100

99101
decoded = decode(self._auth_token, options={
100-
"verify_signature": False})
102+
"verify_signature": False})
101103
self._environment_id = decoded["environment"]
102104
self._cluster = decoded["clusterIdentifier"]
103105
if not self._cluster:
@@ -115,33 +117,38 @@ def authenticate(self):
115117
def bool_variation(self, identifier: str, target: Target,
116118
default: bool) -> bool:
117119
variation = self._evaluator.evaluate(identifier, target)
118-
self._analytics.enqueue(target, identifier, variation)
120+
if self._config.enable_analytics:
121+
self._analytics.enqueue(target, identifier, variation)
119122
return variation.bool(default)
120123

121124
def int_variation(self, identifier: str, target: Target,
122125
default: int) -> int:
123126
variation = self._evaluator.evaluate(identifier, target)
124-
self._analytics.enqueue(target, identifier, variation)
127+
if self._config.enable_analytics:
128+
self._analytics.enqueue(target, identifier, variation)
125129
return variation.int(default)
126130

127131
def number_variation(self, identifier: str, target: Target,
128132
default: float) -> float:
129133
variation = self._evaluator.evaluate(
130134
identifier, target)
131-
self._analytics.enqueue(target, identifier, variation)
135+
if self._config.enable_analytics:
136+
self._analytics.enqueue(target, identifier, variation)
132137
return variation.number(default)
133138

134139
def string_variation(self, identifier: str, target: Target,
135140
default: str) -> str:
136141
variation = self._evaluator.evaluate(
137142
identifier, target)
138-
self._analytics.enqueue(target, identifier, variation)
143+
if self._config.enable_analytics:
144+
self._analytics.enqueue(target, identifier, variation)
139145
return variation.string(default)
140146

141147
def json_variation(self, identifier: str, target: Target,
142148
default: Dict[str, Any]) -> Dict[str, Any]:
143149
variation = self._evaluator.evaluate(identifier, target)
144-
self._analytics.enqueue(target, identifier, variation)
150+
if self._config.enable_analytics:
151+
self._analytics.enqueue(target, identifier, variation)
145152
return variation.json(default)
146153

147154
def close(self):

0 commit comments

Comments
 (0)