Sha256: e3251892cc5afa43426e25d2c8c260a788f5096d8f3b4f67e66770d417496266
Contents?: true
Size: 1.27 KB
Versions: 1
Compression:
Stored size: 1.27 KB
Contents
module FwtPushNotificationServer module Notifier class APNS < Notifier::Base def notify_once(message, device_tokens, payload = nil) alert = message.byteslice(0, 232) alert += '...' if alert.bytesize > 232 config = FwtPushNotificationServer.apns_config pusher = Grocer.pusher(config) device_tokens = [device_tokens] unless device_tokens.is_a?(Array) device_tokens.each do |device| if device.is_valid token = device.token n = Grocer::Notification.new(device_token: token, alert: alert, custom: payload) pusher.push n end end feedback_config = { :gateway => config[:gateway].gsub('gateway', 'feedback'), :certificate => config[:certificate] } feedback = Grocer.feedback(feedback_config) feedback.each do |attempt| token = attempt.device_token device_token = DeviceToken.find_by_token(token) if device_token device_token.update_attribute("is_valid", false) if device_token.updated_at < attempt.timestamp Rails.logger.warn("APNS: Device #{token} (#{device_token.user_id}) failed at #{attempt.timestamp}") end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fwt_push_notification_server-0.1.0.b11 | lib/notifier/apns.rb |