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
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
mocks.verify_partial_doubles = true
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/"])
end
end