master
Eugen Rochko 7 years ago
parent 3f075c7794
commit 83ccdeb87a
  1. 14
      app/services/send_push_notification_service.rb
  2. 6
      spec/spec_helper.rb

@ -2,13 +2,13 @@
class SendPushNotificationService < BaseService class SendPushNotificationService < BaseService
def call(notification) 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) devices = Device.where(account: notification.account).pluck(:registration_id)
fcm = FCM.new(ENV['FCM_API_KEY']) fcm = FCM.new(ENV['FCM_API_KEY'])
response = fcm.send(devices, data: { notification_id: notification.id }, collapse_key: :notifications, priority: :high) response = fcm.send(devices, data: { notification_id: notification.id }, collapse_key: :notifications, priority: :high)
handle_response(response) handle_response(response)
end end
private private
@ -19,10 +19,10 @@ class SendPushNotificationService < BaseService
end end
def update_canonical_ids(ids) 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 end
def remove_bad_ids(bad_ids) 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
end end

@ -13,7 +13,11 @@ RSpec.configure do |config|
mocks.verify_partial_doubles = true mocks.verify_partial_doubles = true
end end
config.after(:suite) do config.before :each do
stub_request(:post, 'https://fcm.googleapis.com/fcm/send').to_return(status: 200, body: '')
end
config.after :suite do
FileUtils.rm_rf(Dir["#{Rails.root}/spec/test_files/"]) FileUtils.rm_rf(Dir["#{Rails.root}/spec/test_files/"])
end end
end end

Loading…
Cancel
Save