From 4553cf4a2bf67854d9ce6765bb0f431ffbaf4bd5 Mon Sep 17 00:00:00 2001 From: Pawel Szczodruch Date: Wed, 14 Oct 2020 15:34:37 -0700 Subject: [PATCH] fix: correcting metadata and decision payload --- 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 f9e59b1b1..c8062ca44 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])