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.
-
#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 |
# File 'app/models/test_track/unsynced_assignments_notifier.rb', line 4 def initialize(opts) @visitor_id = opts.delete(:visitor_id) @assignments = opts.delete(:assignments) %w(visitor_id assignments).each do |param_name| raise "#{param_name} must be present" if send(param_name).blank? 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 |
#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
14 15 16 17 18 19 20 21 |
# File 'app/models/test_track/unsynced_assignments_notifier.rb', line 14 def notify assignments.each do |assignment| TestTrack::AssignmentEventJob.perform_now(**assignment_job_args(assignment)) rescue *TestTrack::SERVER_ERRORS => e Rails.logger.error "TestTrack failed to notify unsynced assignments, retrying. #{e}" TestTrack::AssignmentEventJob.perform_later(**assignment_job_args(assignment)) end end |