Class: TransactionalEmailAnalyticsJob

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Job
Defined in:
app/sidekiq/transactional_email_analytics_job.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeTransactionalEmailAnalyticsJob

Returns a new instance of TransactionalEmailAnalyticsJob.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/sidekiq/transactional_email_analytics_job.rb', line 8

def initialize
  unless FeatureFlipper.send_email?
    raise Common::Exceptions::ParameterMissing.new(
      'GovDelivery token or server',
      detail: 'It should be configured in settings.yml'
    )
  end
  if Settings.google_analytics.tracking_id.blank?
    raise Common::Exceptions::ParameterMissing.new(
      'Google Analytics tracking ID',
      detail: 'It should be configured in settings.yml'
    )
  end
  @tracker = Staccato.tracker(Settings.google_analytics.tracking_id)
  @time_range_start = 1445.minutes.ago
  @time_range_end = 5.minutes.ago
end

Class Method Details

.mailersObject

mailers descendant of TransactionalEmailMailer these are declared explicitly because ‘.descendants` doesn’t play well with zeitwerk autoloading



41
42
43
44
45
46
47
48
49
50
# File 'app/sidekiq/transactional_email_analytics_job.rb', line 41

def self.mailers
  [
    StemApplicantConfirmationMailer,
    SchoolCertifyingOfficialsMailer,
    DirectDepositMailer,
    HCASubmissionFailureMailer,
    StemApplicantScoMailer,
    StemApplicantDenialMailer
  ]
end

Instance Method Details

#performObject



26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/sidekiq/transactional_email_analytics_job.rb', line 26

def perform
  page = 0
  loop do
    page += 1
    relevant_emails(page).each do |mailer, emails|
      emails.each do |email|
        eval_email(email, mailer)
      end
    end
    break if we_should_break?
  end
end