Sha256: 2eb804f14666bf72c850d68f4ddc3cf089c6d1eb3e974948949f5494c6213149

Contents?: true

Size: 665 Bytes

Versions: 1

Compression:

Stored size: 665 Bytes

Contents

# frozen_string_literal: true

require 'fcm'

module Nuntius
  class FirebasePushProvider < BaseProvider
    transport :push

    setting_reader :server_key, required: true, description: 'Server key for the project, see Firebase console'

    def deliver
      fcm = FCM.new(server_key)

      options = (message.payload || {}).merge(data: { body: message.text })
      response = fcm.send([message.to], options)

      message.status = if response[:status_code] != 200 || response[:response] != 'success'
                         'undelivered'
                       else
                         'sent'
                       end

      message
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nuntius-1.0.27 app/providers/nuntius/firebase_push_provider.rb