Class: TestTrack::UnsyncedAssignmentsNotifier
- Inherits:
-
Object
- Object
- TestTrack::UnsyncedAssignmentsNotifier
- Defined in:
- app/models/test_track/unsynced_assignments_notifier.rb
Instance Attribute Summary collapse
-
#assignments ⇒ Object
readonly
Returns the value of attribute assignments.
-
#mixpanel_distinct_id ⇒ Object
readonly
Returns the value of attribute mixpanel_distinct_id.
-
#visitor_id ⇒ Object
readonly
Returns the value of attribute visitor_id.
Instance Method Summary collapse
-
#initialize(opts) ⇒ UnsyncedAssignmentsNotifier
constructor
A new instance of UnsyncedAssignmentsNotifier.
- #notify ⇒ Object
Constructor Details
#initialize(opts) ⇒ UnsyncedAssignmentsNotifier
Returns a new instance of UnsyncedAssignmentsNotifier.
4 5 6 7 8 9 10 11 12 13 |
# File 'app/models/test_track/unsynced_assignments_notifier.rb', line 4 def initialize(opts) @visitor_id = opts.delete(:visitor_id) @mixpanel_distinct_id = opts.delete(:mixpanel_distinct_id) || visitor_id @assignments = opts.delete(:assignments) %w(visitor_id assignments).each do |param_name| raise "#{param_name} must be present" unless send(param_name).present? end raise "unknown opts: #{opts.keys.to_sentence}" if opts.present? end |
Instance Attribute Details
#assignments ⇒ Object (readonly)
Returns the value of attribute assignments.
2 3 4 |
# File 'app/models/test_track/unsynced_assignments_notifier.rb', line 2 def assignments @assignments end |
#mixpanel_distinct_id ⇒ Object (readonly)
Returns the value of attribute mixpanel_distinct_id.
2 3 4 |
# File 'app/models/test_track/unsynced_assignments_notifier.rb', line 2 def mixpanel_distinct_id @mixpanel_distinct_id end |
#visitor_id ⇒ Object (readonly)
Returns the value of attribute visitor_id.
2 3 4 |
# File 'app/models/test_track/unsynced_assignments_notifier.rb', line 2 def visitor_id @visitor_id end |
Instance Method Details
#notify ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/models/test_track/unsynced_assignments_notifier.rb', line 15 def notify assignments.each do |assignment| build_notify_assignment_job(assignment).tap do |job| begin job.perform rescue *TestTrack::SERVER_ERRORS => e Rails.logger.error "TestTrack failed to notify unsynced assignments, retrying. #{e}" Delayed::Job.enqueue(build_notify_assignment_job(assignment)) end end end end |