class JeraPush::Firebase::ApiResult
Attributes
registration_ids[RW]
result[RW]
topic[RW]
Public Class Methods
broadcast_result(message:, results:)
click to toggle source
# File lib/jera_push/firebase/api_result.rb, line 19 def self.broadcast_result(message:, results:) return nil if results.blank? || message.blank? message.broadcast_result = [] results.each do |result| obj = { platform: result.topic.split('_').last.titlecase } if result.success? message.status = :sent else message.status = :error obj[:message] = result.result['error'] end obj[:firebase_id] = result.result['message_id'] message.broadcast_result << obj end message.save end
new(firebase_response, registration_ids: [], topic: nil)
click to toggle source
# File lib/jera_push/firebase/api_result.rb, line 9 def initialize(firebase_response, registration_ids: [], topic: nil) @result = firebase_response @registration_ids = registration_ids @topic = topic end
Public Instance Methods
result_to(message:)
click to toggle source
# File lib/jera_push/firebase/api_result.rb, line 51 def result_to(message:) return if result.nil? || result['results'].nil? message.status = :sent message.failure_count += result['failure'].to_i message.success_count += result['success'].to_i message.save result['results'].each_with_index do |result, index| token = registration_ids[index] device = message.message_devices.joins(:device).find_by(jera_push_devices: { token: token } ) set_result(result, device) if token && device end end
set_result(result, device)
click to toggle source
# File lib/jera_push/firebase/api_result.rb, line 66 def set_result(result, device) if result['error'] && !result['error'].empty? device.status = :error device.error_message = result['error'] else device.status = :success end device.firebase_id = result['message_id'] device.save end
success?()
click to toggle source
# File lib/jera_push/firebase/api_result.rb, line 15 def success? result && result.code == 200 end
topic_result(message:)
click to toggle source
# File lib/jera_push/firebase/api_result.rb, line 39 def topic_result(message:) return if message.nil? || result.nil? if !result['error'].nil? message.status = :error message.error_message = result['error'] else message.status = :sent end message.firebase_id = result['message_id'] message.save end