module NotificationHub::SubscriptionManager
Public Class Methods
create_subscription(association_model_id, event_code, channel_code, device_details=nil)
click to toggle source
# File lib/notification_hub/subscription_manager.rb, line 7 def create_subscription(association_model_id, event_code, channel_code, device_details=nil) subscription = NotificationHub::Subscription. where("#{NotificationHub.association_model}_id" => association_model_id, event_code: event_code, channel_code: channel_code).first_or_create! if device_details device = NotificationHub::DeviceManager.create_device(association_model_id, channel_code, device_details) NotificationHub::SubscriptionDevice.where(notification_hub_subscription_id: subscription.id, notification_hub_device_id: device.id).first_or_create! end subscription end
create_subscription_device(association_model_id, device_id, event_code, channel_code)
click to toggle source
# File lib/notification_hub/subscription_manager.rb, line 35 def create_subscription_device(association_model_id, device_id, event_code, channel_code) subscription = NotificationHub::Subscription. where("#{NotificationHub.association_model}_id" => association_model_id, event_code: event_code, channel_code: channel_code).first_or_create! subscription_device = NotificationHub::SubscriptionDevice.where(notification_hub_subscription_id: subscription.id, notification_hub_device_id: device_id).first_or_create! subscription_device end
delete_subscription(id)
click to toggle source
# File lib/notification_hub/subscription_manager.rb, line 46 def delete_subscription(id) NotificationHub::Subscription.find(id.to_i).destroy end
delete_subscription_device(id)
click to toggle source
# File lib/notification_hub/subscription_manager.rb, line 50 def delete_subscription_device(id) NotificationHub::SubscriptionDevice.find(id.to_i).destroy end
update_subscription(id, event_code, channel_code, device_details)
click to toggle source
# File lib/notification_hub/subscription_manager.rb, line 21 def update_subscription(id, event_code, channel_code, device_details) subscription = NotificationHub::Subscription.find(id) subscription.update_attributes!(event_code: event_code, channel_code: channel_code) if device_details subscription.notification_hub_subscription_devices.destroy_all association_model_id = eval("subscription.#{NotificationHub.association_model}.id") device = NotificationHub::DeviceManager.create_device(association_model_id, channel_code, device_details) NotificationHub::SubscriptionDevice.where(notification_hub_subscription_id: subscription.id, notification_hub_device_id: device.id).first_or_create! end subscription end