@@ -89,10 +89,20 @@ def _create_visitor(cls, event, logger):
89
89
"""
90
90
91
91
if isinstance (event , user_event .ImpressionEvent ):
92
- metadata = payload .Metadata (event .flag_key , event .rule_key , event .rule_type , event .variation .key )
93
- decision = payload .Decision (event .experiment .layerId , event .experiment .id , event .variation .id , metadata )
92
+ experiment_layerId , experiment_id , variation_id , variation_key = '' , '' , '' , ''
93
+
94
+ if event .variation :
95
+ variation_id = event .variation .id
96
+ variation_key = event .variation .key
97
+
98
+ if event .experiment :
99
+ experiment_layerId = event .experiment .layerId
100
+ experiment_id = event .experiment .id
101
+
102
+ metadata = payload .Metadata (event .flag_key , event .rule_key , event .rule_type , variation_key )
103
+ decision = payload .Decision (experiment_layerId , experiment_id , variation_id , metadata )
94
104
snapshot_event = payload .SnapshotEvent (
95
- event . experiment . layerId , event .uuid , cls .ACTIVATE_EVENT_KEY , event .timestamp ,
105
+ experiment_layerId , event .uuid , cls .ACTIVATE_EVENT_KEY , event .timestamp ,
96
106
)
97
107
98
108
snapshot = payload .Snapshot ([snapshot_event ], [decision ])
0 commit comments