diff options
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/notify_service.rb | 5 | ||||
-rw-r--r-- | app/services/send_push_notification_service.rb | 28 |
2 files changed, 0 insertions, 33 deletions
diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb index 0cc3cd618..942cd9d21 100644 --- a/app/services/notify_service.rb +++ b/app/services/notify_service.rb @@ -10,7 +10,6 @@ class NotifyService < BaseService create_notification send_email if email_enabled? - send_push_notification rescue ActiveRecord::RecordInvalid return end @@ -58,10 +57,6 @@ class NotifyService < BaseService NotificationMailer.send(@notification.type, @recipient, @notification).deliver_later end - def send_push_notification - PushNotificationWorker.perform_async(@notification.id) - end - def email_enabled? @recipient.user.settings.notification_emails[@notification.type] end diff --git a/app/services/send_push_notification_service.rb b/app/services/send_push_notification_service.rb deleted file mode 100644 index 526ae20cb..000000000 --- a/app/services/send_push_notification_service.rb +++ /dev/null @@ -1,28 +0,0 @@ -# frozen_string_literal: true - -class SendPushNotificationService < BaseService - def call(notification) - return if ENV['FCM_API_KEY'].blank? - - 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) - end - - private - - def handle_response(response) - update_canonical_ids(response[:canonical_ids]) if response[:canonical_ids] - remove_bad_ids(response[:not_registered_ids]) if response[:not_registered_ids] - end - - def update_canonical_ids(ids) - 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 unless bad_ids.empty? - end -end |