From b6d96a7270022461412c40e1fc7036998c4fe06c Mon Sep 17 00:00:00 2001 From: Pawel Szczodruch <44238966+pawels-optimizely@users.noreply.github.com> Date: Wed, 14 Oct 2020 16:50:25 -0700 Subject: [PATCH] fix: correcting metadata and decision payload (#303) --- optimizely/event/event_factory.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/optimizely/event/event_factory.py b/optimizely/event/event_factory.py index f9e59b1b..c8062ca4 100644 --- a/optimizely/event/event_factory.py +++ b/optimizely/event/event_factory.py @@ -89,10 +89,20 @@ def _create_visitor(cls, event, logger): """ if isinstance(event, user_event.ImpressionEvent): - metadata = payload.Metadata(event.flag_key, event.rule_key, event.rule_type, event.variation.key) - decision = payload.Decision(event.experiment.layerId, event.experiment.id, event.variation.id, metadata) + experiment_layerId, experiment_id, variation_id, variation_key = '', '', '', '' + + if event.variation: + variation_id = event.variation.id + variation_key = event.variation.key + + if event.experiment: + experiment_layerId = event.experiment.layerId + experiment_id = event.experiment.id + + metadata = payload.Metadata(event.flag_key, event.rule_key, event.rule_type, variation_key) + decision = payload.Decision(experiment_layerId, experiment_id, variation_id, metadata) snapshot_event = payload.SnapshotEvent( - event.experiment.layerId, event.uuid, cls.ACTIVATE_EVENT_KEY, event.timestamp, + experiment_layerId, event.uuid, cls.ACTIVATE_EVENT_KEY, event.timestamp, ) snapshot = payload.Snapshot([snapshot_event], [decision])