|
|
@ -2,13 +2,13 @@ |
|
|
|
|
|
|
|
class SendPushNotificationService < BaseService |
|
|
|
def call(notification) |
|
|
|
return if ENV['FCM_API_KEY'].blank? |
|
|
|
return if ENV['FCM_API_KEY'].blank? |
|
|
|
|
|
|
|
devices = Device.where(account: notification.account).pluck(:registration_id) |
|
|
|
fcm = FCM.new(ENV['FCM_API_KEY']) |
|
|
|
devices = Device.where(account: notification.account).pluck(:registration_id) |
|
|
|
fcm = FCM.new(ENV['FCM_API_KEY']) |
|
|
|
|
|
|
|
response = fcm.send(devices, data: { notification_id: notification.id }, collapse_key: :notifications, priority: :high) |
|
|
|
handle_response(response) |
|
|
|
response = fcm.send(devices, data: { notification_id: notification.id }, collapse_key: :notifications, priority: :high) |
|
|
|
handle_response(response) |
|
|
|
end |
|
|
|
|
|
|
|
private |
|
|
@ -19,10 +19,10 @@ class SendPushNotificationService < BaseService |
|
|
|
end |
|
|
|
|
|
|
|
def update_canonical_ids(ids) |
|
|
|
ids.each { |pair| Device.find_by(registration_id: pair[:old]).update(registration_id: pair[:new]) } |
|
|
|
ids.each { |pair| Device.find_by(registration_id: pair[:old]).update(registration_id: pair[:new]) } |
|
|
|
end |
|
|
|
|
|
|
|
def remove_bad_ids(bad_ids) |
|
|
|
Device.where(registration_id: bad_ids).delete_all |
|
|
|
Device.where(registration_id: bad_ids).delete_all unless bad_ids.empty? |
|
|
|
end |
|
|
|
end |