24
24
require_relative 'optimizely/helpers/validator'
25
25
require_relative 'optimizely/helpers/variable_type'
26
26
require_relative 'optimizely/logger'
27
+ require_relative 'optimizely/notification_center'
27
28
require_relative 'optimizely/project_config'
28
29
29
30
module Optimizely
@@ -38,6 +39,7 @@ class Project
38
39
attr_reader :event_builder
39
40
attr_reader :event_dispatcher
40
41
attr_reader :logger
42
+ attr_reader :notification_center
41
43
42
44
def initialize ( datafile , event_dispatcher = nil , logger = nil , error_handler = nil , skip_json_validation = false , user_profile_service = nil )
43
45
# Constructor for Projects.
@@ -83,6 +85,7 @@ def initialize(datafile, event_dispatcher = nil, logger = nil, error_handler = n
83
85
84
86
@decision_service = DecisionService . new ( @config , @user_profile_service )
85
87
@event_builder = EventBuilder . new ( @config )
88
+ @notification_center = NotificationCenter . new ( @logger , @error_handler )
86
89
end
87
90
88
91
def activate ( experiment_key , user_id , attributes = nil )
@@ -231,6 +234,10 @@ def track(event_key, user_id, attributes = nil, event_tags = nil)
231
234
rescue => e
232
235
@logger . log ( Logger ::ERROR , "Unable to dispatch conversion event. Error: #{ e } " )
233
236
end
237
+ @notification_center . send_notifications (
238
+ NotificationCenter ::NOTIFICATION_TYPES [ :TRACK ] ,
239
+ event_key , user_id , attributes , event_tags , conversion_event
240
+ )
234
241
end
235
242
236
243
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)
512
519
rescue => e
513
520
@logger . log ( Logger ::ERROR , "Unable to dispatch impression event. Error: #{ e } " )
514
521
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
+ )
515
527
end
516
528
end
517
529
end
0 commit comments