Module: NotificationHub::SubscriptionManager

Defined in:
lib/notification_hub/subscription_manager.rb

Class Method Summary collapse

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