|
1 | 1 | """A module for Split.io SDK API clients.""" |
2 | 2 | import logging |
| 3 | +import json |
3 | 4 |
|
4 | 5 | from splitio.engine.evaluator import Evaluator, CONTROL, EvaluationDataFactory, AsyncEvaluationDataFactory |
5 | 6 | from splitio.engine.splitters import Splitter |
@@ -135,13 +136,14 @@ def _build_impression(self, key, bucketing, feature, result, properties=None): |
135 | 136 | change_number=result['impression']['change_number'], |
136 | 137 | bucketing_key=bucketing, |
137 | 138 | time=utctime_ms(), |
138 | | - impression_properties=properties), |
| 139 | + previous_time=None, |
| 140 | + properties=json.dumps(properties)), |
139 | 141 | disabled=result['impressions_disabled']) |
140 | 142 |
|
141 | | - def _build_impressions(self, key, bucketing, results): |
| 143 | + def _build_impressions(self, key, bucketing, results, properties=None): |
142 | 144 | """Build an impression based on evaluation data & it's result.""" |
143 | 145 | return [ |
144 | | - self._build_impression(key, bucketing, feature, result) |
| 146 | + self._build_impression(key, bucketing, feature, result, properties) |
145 | 147 | for feature, result in results.items() |
146 | 148 | ] |
147 | 149 |
|
@@ -568,7 +570,7 @@ def _get_treatments(self, key, features, method, attributes=None, impressions_pr |
568 | 570 | self._telemetry_init_producer.record_not_ready_usage() |
569 | 571 |
|
570 | 572 | try: |
571 | | - key, bucketing, features, attributes = self._validate_treatments_input(key, features, attributes, method, impressions_properties) |
| 573 | + key, bucketing, features, attributes, impressions_properties = self._validate_treatments_input(key, features, attributes, method, impressions_properties) |
572 | 574 | except _InvalidInputError: |
573 | 575 | return input_validator.generate_control_treatments(features) |
574 | 576 |
|
@@ -957,7 +959,7 @@ async def _get_treatments(self, key, features, method, attributes=None, impressi |
957 | 959 | await self._telemetry_init_producer.record_not_ready_usage() |
958 | 960 |
|
959 | 961 | try: |
960 | | - key, bucketing, features, attributes = self._validate_treatments_input(key, features, attributes, method, impressions_properties) |
| 962 | + key, bucketing, features, attributes, impressions_properties = self._validate_treatments_input(key, features, attributes, method, impressions_properties) |
961 | 963 | except _InvalidInputError: |
962 | 964 | return input_validator.generate_control_treatments(features) |
963 | 965 |
|
|
0 commit comments