Class: Maia::Messenger

Inherits:
ActiveJob::Base
  • Object
show all
Defined in:
lib/maia/messenger.rb

Instance Method Summary collapse

Instance Method Details

#perform(tokens, payload) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/maia/messenger.rb', line 4

def perform(tokens, payload)
  logger.info "Pushing to #{tokens.size} token(s)..."
  logger.info "Payload: #{payload}"

  notification = GCM::Notification.new(payload)
  responses = gcm.deliver(notification, tokens)

  responses.each do |response|
    if error = response.error
      raise Maia::Error, error
    else
      handle_failed_tokens response.results.failed
      update_devices_to_use_canonical_ids response.results.with_canonical_ids
    end
  end
end