Class: Chaskiq::SnsReceiverJob

Inherits:
ActiveJob::Base
  • Object
show all
Defined in:
app/jobs/chaskiq/sns_receiver_job.rb

Instance Method Summary collapse

Instance Method Details

#parsed_message_id(m) ⇒ Object



27
28
29
# File 'app/jobs/chaskiq/sns_receiver_job.rb', line 27

def parsed_message_id(m)
  m["mail"]["messageId"]
end

#perform(track_type, m, referrer) ⇒ Object

Receive hook



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/jobs/chaskiq/sns_receiver_job.rb', line 7

def perform(track_type, m, referrer)
  data = m["mail"]["messageId"]

  metric = Chaskiq::Metric.find_by(data:parsed_message_id(m))

  return if metric.blank?

  campaign = metric.campaign
  #subscriber = metric.trackable
  #subscription = campaign.subscriptions.find_by(subscriber: subscriber)
  subscription = metric.trackable

  subscription.unsubscribe! if track_type == "spam"
  subscription.subscriber.send("track_#{track_type}".to_sym, {
    host: referrer,
    campaign_id: campaign.id,
    data: data
  })
end