Skip to content

Commit ae69b09

Browse files
committed
resolves notification listener conflicts
1 parent 4650790 commit ae69b09

File tree

7 files changed

+1046
-360
lines changed

7 files changed

+1046
-360
lines changed

lib/optimizely.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
require_relative 'optimizely/helpers/validator'
2525
require_relative 'optimizely/helpers/variable_type'
2626
require_relative 'optimizely/logger'
27+
require_relative 'optimizely/notification_center'
2728
require_relative 'optimizely/project_config'
2829

2930
module Optimizely
@@ -38,6 +39,7 @@ class Project
3839
attr_reader :event_builder
3940
attr_reader :event_dispatcher
4041
attr_reader :logger
42+
attr_reader :notification_center
4143

4244
def initialize(datafile, event_dispatcher = nil, logger = nil, error_handler = nil, skip_json_validation = false, user_profile_service = nil)
4345
# Constructor for Projects.
@@ -83,6 +85,7 @@ def initialize(datafile, event_dispatcher = nil, logger = nil, error_handler = n
8385

8486
@decision_service = DecisionService.new(@config, @user_profile_service)
8587
@event_builder = EventBuilder.new(@config)
88+
@notification_center = NotificationCenter.new(@logger, @error_handler)
8689
end
8790

8891
def activate(experiment_key, user_id, attributes = nil)
@@ -231,6 +234,10 @@ def track(event_key, user_id, attributes = nil, event_tags = nil)
231234
rescue => e
232235
@logger.log(Logger::ERROR, "Unable to dispatch conversion event. Error: #{e}")
233236
end
237+
@notification_center.send_notifications(
238+
NotificationCenter::NOTIFICATION_TYPES[:TRACK],
239+
event_key, user_id, attributes, event_tags, conversion_event
240+
)
234241
end
235242

236243
def is_feature_enabled(feature_flag_key, user_id, attributes = nil)
@@ -512,6 +519,11 @@ def send_impression(experiment, variation_key, user_id, attributes = nil)
512519
rescue => e
513520
@logger.log(Logger::ERROR, "Unable to dispatch impression event. Error: #{e}")
514521
end
522+
variation = @config.get_variation_from_id(experiment_key, variation_id)
523+
@notification_center.send_notifications(
524+
NotificationCenter::NOTIFICATION_TYPES[:ACTIVATE],
525+
experiment,user_id, attributes, variation, impression_event
526+
)
515527
end
516528
end
517529
end

0 commit comments

Comments
 (0)