The code powering m.abunchtell.com https://m.abunchtell.com
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

25 linhas
622 B

  1. # frozen_string_literal: true
  2. class Web::PushNotificationWorker
  3. include Sidekiq::Worker
  4. sidekiq_options backtrace: true, retry: 5
  5. def perform(subscription_id, notification_id)
  6. subscription = ::Web::PushSubscription.find(subscription_id)
  7. notification = Notification.find(notification_id)
  8. subscription.push(notification) unless notification.activity.nil?
  9. rescue Webpush::ResponseError => e
  10. code = e.response.code.to_i
  11. if (400..499).cover?(code) && ![408, 429].include?(code)
  12. subscription.destroy!
  13. else
  14. raise e
  15. end
  16. rescue ActiveRecord::RecordNotFound
  17. true
  18. end
  19. end