Module: NotificationHub::SubscriptionManager
- Defined in:
- lib/notification_hub/subscription_manager.rb
Class Method Summary collapse
- .create_subscription(association_model_id, event_code, channel_code, device_details = nil) ⇒ Object
- .create_subscription_device(association_model_id, device_id, event_code, channel_code) ⇒ Object
- .delete_subscription(id) ⇒ Object
- .delete_subscription_device(id) ⇒ Object
- .update_subscription(id, event_code, channel_code, device_details) ⇒ Object
Class Method Details
.create_subscription(association_model_id, event_code, channel_code, device_details = nil) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# 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) ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# 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) ⇒ Object
46 47 48 |
# 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) ⇒ Object
50 51 52 |
# 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) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# 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 |