Module: ActionNativePush

Defined in:
lib/action_native_push.rb,
lib/action_native_push/engine.rb,
lib/action_native_push/errors.rb,
lib/action_native_push/version.rb,
lib/action_native_push/service/fcm.rb,
lib/action_native_push/notification.rb,
lib/action_native_push/service/apns.rb,
app/models/action_native_push/device.rb,
app/jobs/action_native_push/notification_job.rb,
lib/action_native_push/configured_notification.rb

Defined Under Namespace

Modules: Service Classes: BadDeviceTopicError, BadRequestError, ConfiguredNotification, ConnectionError, Device, Engine, ForbiddenError, InstallGenerator, InternalServerError, NotFoundError, Notification, NotificationJob, PayloadTooLargeError, ServiceUnavailableError, TimeoutError, TokenError, TooManyRequestsError

Constant Summary collapse

VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.config_for(platform, notification) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/action_native_push.rb', line 29

def self.config_for(platform, notification)
  platform_config = Rails.application.config_for(:push)[platform.to_sym]
  raise "ActionNativePush: '#{platform}' platform is not configured" unless platform_config.present?

  if notification.application.present?
    notification_config = platform_config.fetch(notification.application.to_sym, {})
    platform_config.fetch(:application, {}).merge(notification_config)
  else
    platform_config
  end
end

.service_for(platform, notification) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/action_native_push.rb', line 16

def self.service_for(platform, notification)
  platform_config = config_for(platform, notification)

  case platform.to_sym
  when :apple
    Service::Apns.new(platform_config)
  when :google
    Service::Fcm.new(platform_config)
  else
    raise "ActionNativePush: '#{platform}' platform is unsupported"
  end
end