class Rpush::Daemon::Gcm::Results
Attributes
failures[R]
successes[R]
Public Class Methods
new(results_data, registration_ids)
click to toggle source
# File lib/rpush/daemon/gcm/delivery.rb, line 169 def initialize(results_data, registration_ids) @results_data = results_data @registration_ids = registration_ids end
Public Instance Methods
process(failure_partitions = {})
click to toggle source
# File lib/rpush/daemon/gcm/delivery.rb, line 174 def process(failure_partitions = {}) # rubocop:disable Metrics/AbcSize @successes = [] @failures = Failures.new failure_partitions.each_key do |category| failures[category] = [] end @results_data.each_with_index do |result, index| entry = { registration_id: @registration_ids[index], index: index } if result['message_id'] entry[:canonical_id] = result['registration_id'] if result['registration_id'].present? successes << entry elsif result['error'] entry[:error] = result['error'] failures << entry failure_partitions.each do |category, error_states| failures[category] << entry if error_states.include?(result['error']) end end end failures.all_failed = failures.count == @registration_ids.count end