Class: Pushable::Messenger

Inherits:
ActiveJob::Base
  • Object
show all
Defined in:
app/models/pushable/messenger.rb

Instance Method Summary collapse

Instance Method Details

#perform(device_ids, payload) ⇒ Object



4
5
6
7
# File 'app/models/pushable/messenger.rb', line 4

def perform(device_ids, payload)
  send_gcm  Device.android.where(id: device_ids).pluck(:token), payload
  send_apns Device.ios.where(id: device_ids).pluck(:token), payload
end

#send_apns(tokens, payload) ⇒ Object



21
22
23
24
25
26
27
28
# File 'app/models/pushable/messenger.rb', line 21

def send_apns(tokens, payload)
  return unless tokens.any?
  Rails.logger.info "[APNS] Sending to #{tokens.size} tokens..."
  Rails.logger.info "[APNS] Payload: #{payload}"
  service = APNS::Service.new
  notification = APNS::Notification.new(payload)
  service.deliver notification, tokens
end

#send_gcm(tokens, payload) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'app/models/pushable/messenger.rb', line 9

def send_gcm(tokens, payload)
  return unless tokens.any?
  Rails.logger.info "[GCM] Sending to #{tokens.size} tokens..."
  Rails.logger.info "[GCM] Payload: #{payload}"
  service = GCM::Service.new
  notification = GCM::Notification.new(payload)
  result = service.deliver notification, tokens
  result.responses.each do |resp|
    Rails.logger.info "[GCM] Response: #{resp.message}"
  end
end