about summary refs log tree commit diff
path: root/app/workers/web_push_notification_worker.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/workers/web_push_notification_worker.rb')
-rw-r--r--app/workers/web_push_notification_worker.rb5
1 files changed, 2 insertions, 3 deletions
diff --git a/app/workers/web_push_notification_worker.rb b/app/workers/web_push_notification_worker.rb
index 0568a3e02..e8f1d72bd 100644
--- a/app/workers/web_push_notification_worker.rb
+++ b/app/workers/web_push_notification_worker.rb
@@ -9,7 +9,7 @@ class WebPushNotificationWorker
     recipient = Account.find(recipient_id)
     notification = Notification.find(notification_id)
 
-    sessions_with_subscriptions = recipient.user.session_activations.reject { |session| session.web_push_subscription.nil? }
+    sessions_with_subscriptions = recipient.user.session_activations.where.not(web_push_subscription: nil)
 
     sessions_with_subscriptions.each do |session|
       begin
@@ -17,8 +17,7 @@ class WebPushNotificationWorker
       rescue Webpush::InvalidSubscription, Webpush::ExpiredSubscription
         # Subscription expiration is not currently implemented in any browser
         session.web_push_subscription.destroy!
-        session.web_push_subscription = nil
-        session.save!
+        session.update!(web_push_subscription: nil)
       rescue Webpush::PayloadTooLarge => e
         Rails.logger.error(e)
       end