Class: IshManager::EmailCampaignJob

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Job
Defined in:
app/jobs/ish_manager/email_campaign_job.rb

Overview

EmailContext is mongoid

Instance Method Summary collapse

Instance Method Details

#perform(campaign_id) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/jobs/ish_manager/email_campaign_job.rb', line 9

def perform campaign_id
  @ctx = @campaign = ::Ish::EmailContext.find campaign_id
  print "Sending #{@campaign.slug}:"

  if @ctx.email_template.type != 'partial'
    raise "only `partial` template type is supported for campaigns."
  end

  if @ctx.sent_at
    raise 'This campaign has already been sent!'
  end

  @ctx.campaign_leads.each do |campaign_lead|
    IshManager::OfficeMailer.send_campaign_email( campaign_id, campaign_lead.id ).deliver_later
    print '.'
  end

  @campaign.update_attributes({ sent_at: Time.now })

  puts 'ok'
end