jera_push 1.2.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +12 -18
- data/app/controllers/jera_push/admin/messages_controller.rb +22 -13
- data/app/presenters/jera_push/message_presenter.rb +22 -18
- data/app/views/jera_push/admin/messages/show.html.erb +7 -4
- data/config/locale/jera_push.pt-BR.yml +7 -0
- data/config/routes.rb +1 -0
- data/lib/generators/active_record/templates/create_jera_push_devices.rb +2 -1
- data/lib/generators/active_record/templates/create_jera_push_messages.rb +6 -3
- data/lib/generators/active_record/templates/create_jera_push_messages_devices.rb +3 -3
- data/lib/generators/jera_push/templates/jera_push.rb +2 -1
- data/lib/jera_push/firebase/client.rb +56 -59
- data/lib/jera_push/models/device.rb +3 -31
- data/lib/jera_push/models/message.rb +2 -142
- data/lib/jera_push/models/message_device.rb +1 -0
- data/lib/jera_push/services/base_service.rb +23 -0
- data/lib/jera_push/services/send_message.rb +19 -5
- data/lib/jera_push/services/send_push_service.rb +99 -0
- data/lib/jera_push/services/send_to_device_service.rb +52 -0
- data/lib/jera_push/services/send_to_devices_service.rb +54 -0
- data/lib/jera_push/services/send_to_everyone_service.rb +40 -0
- data/lib/jera_push/services/send_to_topic_service.rb +37 -0
- data/lib/jera_push/services/topic_service.rb +18 -0
- data/lib/jera_push/version.rb +1 -1
- data/lib/jera_push.rb +19 -5
- metadata +71 -116
- data/test/dummy/README.rdoc +0 -28
- data/test/dummy/Rakefile +0 -6
- data/test/dummy/app/assets/javascripts/application.js +0 -13
- data/test/dummy/app/assets/stylesheets/application.css +0 -15
- data/test/dummy/app/controllers/application_controller.rb +0 -5
- data/test/dummy/app/helpers/application_helper.rb +0 -2
- data/test/dummy/app/models/user.rb +0 -3
- data/test/dummy/app/views/layouts/application.html.erb +0 -14
- data/test/dummy/bin/bundle +0 -3
- data/test/dummy/bin/rails +0 -4
- data/test/dummy/bin/rake +0 -4
- data/test/dummy/bin/setup +0 -29
- data/test/dummy/config/application.rb +0 -25
- data/test/dummy/config/boot.rb +0 -5
- data/test/dummy/config/database.yml +0 -16
- data/test/dummy/config/environment.rb +0 -5
- data/test/dummy/config/environments/development.rb +0 -41
- data/test/dummy/config/environments/production.rb +0 -79
- data/test/dummy/config/environments/test.rb +0 -42
- data/test/dummy/config/initializers/assets.rb +0 -12
- data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/test/dummy/config/initializers/cookies_serializer.rb +0 -3
- data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/dummy/config/initializers/inflections.rb +0 -16
- data/test/dummy/config/initializers/mime_types.rb +0 -4
- data/test/dummy/config/initializers/session_store.rb +0 -3
- data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/test/dummy/config/locales/en.yml +0 -23
- data/test/dummy/config/locales/pt-BR.yml +0 -23
- data/test/dummy/config/routes.rb +0 -57
- data/test/dummy/config/secrets.yml +0 -22
- data/test/dummy/config.ru +0 -4
- data/test/dummy/db/migrate/20161005121035_create_users.rb +0 -10
- data/test/dummy/db/schema.rb +0 -61
- data/test/dummy/db/seeds.rb +0 -70
- data/test/dummy/public/404.html +0 -67
- data/test/dummy/public/422.html +0 -67
- data/test/dummy/public/500.html +0 -66
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/test/fixtures/users.yml +0 -7
- data/test/dummy/test/models/user_test.rb +0 -7
- data/test/jera_push_test.rb +0 -7
- data/test/test_helper.rb +0 -20
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            module JeraPush
         | 
| 2 | 
            -
              module  | 
| 2 | 
            +
              module Services
         | 
| 3 3 | 
             
                class SendMessage
         | 
| 4 4 |  | 
| 5 5 | 
             
                  def initialize(*args)
         | 
| @@ -11,13 +11,19 @@ module JeraPush | |
| 11 11 | 
             
                  def call
         | 
| 12 12 | 
             
                    return false unless valid?
         | 
| 13 13 |  | 
| 14 | 
            -
                    message_content =  | 
| 14 | 
            +
                    message_content = format_hash(@message)
         | 
| 15 15 | 
             
                    case @type
         | 
| 16 16 | 
             
                    when :broadcast
         | 
| 17 | 
            -
                       | 
| 17 | 
            +
                      # Topicos não estão funcionando.
         | 
| 18 | 
            +
                      # JeraPush::Message.send_broadcast(content: message_content)
         | 
| 18 19 | 
             
                    when :specific
         | 
| 19 20 | 
             
                      target_devices = JeraPush::Device.where(id: @devices.uniq.map(&:to_i))
         | 
| 20 | 
            -
                      JeraPush:: | 
| 21 | 
            +
                      result = JeraPush::Services::SendToDevicesService.new(devices: target_devices, 
         | 
| 22 | 
            +
                        title: message_content[:title], 
         | 
| 23 | 
            +
                        body: message_content[:body], 
         | 
| 24 | 
            +
                        data: message_content
         | 
| 25 | 
            +
                      ).call
         | 
| 26 | 
            +
                      result
         | 
| 21 27 | 
             
                    end
         | 
| 22 28 | 
             
                  end
         | 
| 23 29 |  | 
| @@ -26,6 +32,14 @@ module JeraPush | |
| 26 32 | 
             
                    @type.to_sym == :broadcast ? valid : valid && @devices.present?
         | 
| 27 33 | 
             
                  end
         | 
| 28 34 |  | 
| 35 | 
            +
                  def format_hash(messages = [])
         | 
| 36 | 
            +
                    return false if messages.blank?
         | 
| 37 | 
            +
                    messages.collect do |obj|
         | 
| 38 | 
            +
                      hash = { obj[:key].to_sym => obj[:value] }
         | 
| 39 | 
            +
                      hash.delete_if { |key, value| key.blank? || value.blank? }
         | 
| 40 | 
            +
                    end.reduce(:merge)
         | 
| 41 | 
            +
                  end
         | 
| 42 | 
            +
             | 
| 29 43 | 
             
                end
         | 
| 30 44 | 
             
              end
         | 
| 31 | 
            -
            end
         | 
| 45 | 
            +
            end
         | 
| @@ -0,0 +1,99 @@ | |
| 1 | 
            +
            module JeraPush::Services
         | 
| 2 | 
            +
              class SendPushService < JeraPush::Services::BaseService
         | 
| 3 | 
            +
                def initialize(device:, message:, message_device:, android_config: {}, ios_config: {})
         | 
| 4 | 
            +
                  super
         | 
| 5 | 
            +
                  @device = device
         | 
| 6 | 
            +
                  @message = message
         | 
| 7 | 
            +
                  @message_device = message_device
         | 
| 8 | 
            +
                  @android_config = android_config
         | 
| 9 | 
            +
                  @ios_config = ios_config
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                def call
         | 
| 13 | 
            +
                  return @errors if @errors.present?
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  send_push
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  @message
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                private
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                def send_push
         | 
| 23 | 
            +
                  @response = @firebase.send_to_device(message: message_params(@device))
         | 
| 24 | 
            +
                  @message_device.update(status: :success)
         | 
| 25 | 
            +
                  @message.update(success_count: @message.success_count + 1)
         | 
| 26 | 
            +
                rescue Google::Apis::AuthorizationError => e
         | 
| 27 | 
            +
                  message = JSON.parse(e.body)
         | 
| 28 | 
            +
                  @message_device.update(status: :error, error_message: message.to_json)
         | 
| 29 | 
            +
                  @message.update(failure_count: @message.failure_count + 1)
         | 
| 30 | 
            +
                rescue Google::Apis::ClientError => e
         | 
| 31 | 
            +
                  response = JSON.parse(e.body, symbolize_names: true)
         | 
| 32 | 
            +
                  error_code = response[:error][:details][0][:errorCode]
         | 
| 33 | 
            +
                  @message_device.update(status: :error, error_message: response.to_json)
         | 
| 34 | 
            +
                  @message.update(failure_count: @message.failure_count + 1)
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                # Documentação com o atributos que podem ser usados em { message: }
         | 
| 38 | 
            +
                # https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages?hl=pt-br
         | 
| 39 | 
            +
                def message_params(device)
         | 
| 40 | 
            +
                  case device.platform.to_sym
         | 
| 41 | 
            +
                  when :android
         | 
| 42 | 
            +
                    android_params(device.token)
         | 
| 43 | 
            +
                  when :ios
         | 
| 44 | 
            +
                    ios_params(device.token)
         | 
| 45 | 
            +
                  else
         | 
| 46 | 
            +
                    {}
         | 
| 47 | 
            +
                  end
         | 
| 48 | 
            +
                end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                def android_params(token)
         | 
| 51 | 
            +
                  {
         | 
| 52 | 
            +
                    message: {
         | 
| 53 | 
            +
                      token: token,
         | 
| 54 | 
            +
                      notification: notification,
         | 
| 55 | 
            +
                      data: @message.data,
         | 
| 56 | 
            +
                      android: android_configs
         | 
| 57 | 
            +
                    },
         | 
| 58 | 
            +
                    validate_only: false
         | 
| 59 | 
            +
                  }
         | 
| 60 | 
            +
                end
         | 
| 61 | 
            +
              
         | 
| 62 | 
            +
                def ios_params(token)
         | 
| 63 | 
            +
                  {
         | 
| 64 | 
            +
                    message: {
         | 
| 65 | 
            +
                      token: token,
         | 
| 66 | 
            +
                      notification: notification,
         | 
| 67 | 
            +
                      data: @message.data,
         | 
| 68 | 
            +
                      apns: apns_params
         | 
| 69 | 
            +
                    },
         | 
| 70 | 
            +
                    validate_only: false
         | 
| 71 | 
            +
                  }
         | 
| 72 | 
            +
                end
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                def notification
         | 
| 75 | 
            +
                  { title: @message.title, body: @message.body }
         | 
| 76 | 
            +
                end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                def apns_params
         | 
| 79 | 
            +
                  @ios_config.empty? ? default_apns_params : @ios_config
         | 
| 80 | 
            +
                end
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                def android_configs
         | 
| 83 | 
            +
                  @android_config.merge({ priority: 'high'})
         | 
| 84 | 
            +
                end
         | 
| 85 | 
            +
             | 
| 86 | 
            +
                def default_apns_params
         | 
| 87 | 
            +
                  {
         | 
| 88 | 
            +
                    headers: {
         | 
| 89 | 
            +
                      'apns-priority': '5'
         | 
| 90 | 
            +
                    },
         | 
| 91 | 
            +
                    payload: {
         | 
| 92 | 
            +
                      aps: {
         | 
| 93 | 
            +
                        'content-available': 1
         | 
| 94 | 
            +
                      }
         | 
| 95 | 
            +
                    }
         | 
| 96 | 
            +
                  }
         | 
| 97 | 
            +
                end
         | 
| 98 | 
            +
              end
         | 
| 99 | 
            +
            end
         | 
| @@ -0,0 +1,52 @@ | |
| 1 | 
            +
            module JeraPush::Services
         | 
| 2 | 
            +
              class SendToDeviceService < JeraPush::Services::BaseService
         | 
| 3 | 
            +
                def initialize(device:, title:, body:, data:, android: {}, ios: {})
         | 
| 4 | 
            +
                  super
         | 
| 5 | 
            +
                  @device = device
         | 
| 6 | 
            +
                  @title = title
         | 
| 7 | 
            +
                  @body = body
         | 
| 8 | 
            +
                  @data = data
         | 
| 9 | 
            +
                  @android_config = android
         | 
| 10 | 
            +
                  @ios_config = ios
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                def call
         | 
| 14 | 
            +
                  validate_device
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  return @errors if @errors.present?
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  create_message
         | 
| 19 | 
            +
                  add_devices_to_message
         | 
| 20 | 
            +
                  send_push
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                  @message
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                private
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                def validate_device
         | 
| 28 | 
            +
                  @errors.add(:base, message: I18n.t('jera_push.services.errors.not_found.device')) if @device.blank?
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                def create_message
         | 
| 32 | 
            +
                  @message = JeraPush::Message.create(title: @title, body: @body, data: data_params)
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                def add_devices_to_message
         | 
| 36 | 
            +
                  @message_device = @message.message_devices.create(device: @device)
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                def send_push
         | 
| 40 | 
            +
                  JeraPush::Services::SendPushService.new(device: @device, 
         | 
| 41 | 
            +
                    message: @message, 
         | 
| 42 | 
            +
                    message_device: @message_device,
         | 
| 43 | 
            +
                    ios_config: @ios_config,
         | 
| 44 | 
            +
                    android_config: @android_config
         | 
| 45 | 
            +
                  ).call
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
              
         | 
| 48 | 
            +
                def data_params
         | 
| 49 | 
            +
                  @data.merge({ title: @title, body: @body })
         | 
| 50 | 
            +
                end
         | 
| 51 | 
            +
              end
         | 
| 52 | 
            +
            end
         | 
| @@ -0,0 +1,54 @@ | |
| 1 | 
            +
            module JeraPush::Services
         | 
| 2 | 
            +
              class SendToDevicesService < JeraPush::Services::BaseService
         | 
| 3 | 
            +
                def initialize(devices:, title:, body:, data:, android: {}, ios: {})
         | 
| 4 | 
            +
                  super
         | 
| 5 | 
            +
                  @devices = devices
         | 
| 6 | 
            +
                  @title = title
         | 
| 7 | 
            +
                  @body = body
         | 
| 8 | 
            +
                  @data = data
         | 
| 9 | 
            +
                  @android_config = android
         | 
| 10 | 
            +
                  @ios_config = ios
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                def call
         | 
| 14 | 
            +
                  validate_device
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  return @errors if @errors.present?
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  create_message
         | 
| 19 | 
            +
                  send_push_to_devices
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                  @message
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                private
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                def validate_device
         | 
| 27 | 
            +
                  @errors.add(:base, message: I18n.t('jera_push.services.errors.not_found.device')) if @devices.empty?
         | 
| 28 | 
            +
                end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                def create_message
         | 
| 31 | 
            +
                  @message = JeraPush::Message.create(title: @title, body: @body, data: data_params)
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                def send_push_to_devices
         | 
| 35 | 
            +
                  @devices.each do |device|
         | 
| 36 | 
            +
                    message_device = @message.message_devices.create(device: device)
         | 
| 37 | 
            +
                    send_push(device, message_device)
         | 
| 38 | 
            +
                  end
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                def send_push(device, message_device)
         | 
| 42 | 
            +
                  JeraPush::Services::SendPushService.new(device: device, 
         | 
| 43 | 
            +
                    message: @message, 
         | 
| 44 | 
            +
                    message_device: message_device,
         | 
| 45 | 
            +
                    ios_config: @ios_config,
         | 
| 46 | 
            +
                    android_config: @android_config
         | 
| 47 | 
            +
                  ).call
         | 
| 48 | 
            +
                end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                def data_params
         | 
| 51 | 
            +
                  @data.merge({ title: @title, body: @body })
         | 
| 52 | 
            +
                end
         | 
| 53 | 
            +
              end
         | 
| 54 | 
            +
            end
         | 
| @@ -0,0 +1,40 @@ | |
| 1 | 
            +
            module JeraPush::Services
         | 
| 2 | 
            +
              class SendToEveryoneService < JeraPush::Services::BaseService
         | 
| 3 | 
            +
                def initialize(title:, body:)
         | 
| 4 | 
            +
                  super
         | 
| 5 | 
            +
                  @title = title
         | 
| 6 | 
            +
                  @body = body
         | 
| 7 | 
            +
                end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                def call
         | 
| 10 | 
            +
                  create_message
         | 
| 11 | 
            +
                  send_android
         | 
| 12 | 
            +
                  send_ios
         | 
| 13 | 
            +
                  update_message
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  @message
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                private
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                def create_message
         | 
| 21 | 
            +
                  @message = JeraPush::Message.create(title: @title, body: @body, kind: :everyone)
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                def send_android
         | 
| 25 | 
            +
                  @response_android = @firebase.send_message_to_topic(message: @message, topic: JeraPush.send('topic_android'))
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                def send_ios
         | 
| 29 | 
            +
                  @response_ios = @firebase.send_message_to_topic(message: @message, topic: JeraPush.send('topic_ios'))
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                def update_message
         | 
| 33 | 
            +
                  @message.update(
         | 
| 34 | 
            +
                    success_count: @response_android["success"] + @response_ios["success"],
         | 
| 35 | 
            +
                    failure_count: @response_android["failure"] + @response_ios["failure"]
         | 
| 36 | 
            +
                  )
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
              end
         | 
| 40 | 
            +
            end
         | 
| @@ -0,0 +1,37 @@ | |
| 1 | 
            +
            module JeraPush::Services
         | 
| 2 | 
            +
              class SendToTopicService < JeraPush::Services::BaseService
         | 
| 3 | 
            +
                def initialize(title:, body:, topic:)
         | 
| 4 | 
            +
                  super
         | 
| 5 | 
            +
                  @title = title
         | 
| 6 | 
            +
                  @body = body
         | 
| 7 | 
            +
                  @topic = topic
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                def call
         | 
| 11 | 
            +
                  create_message
         | 
| 12 | 
            +
                  send_topic
         | 
| 13 | 
            +
                  update_message
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  @message
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                private
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                def create_message
         | 
| 21 | 
            +
                  @message = JeraPush::Message.create(title: @title, body: @body, kind: :topic)
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                def send_topic
         | 
| 25 | 
            +
                  @response = @firebase.send_message_to_topic(message: @message, topic: @topic)
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                def update_message
         | 
| 29 | 
            +
                  @message.update(
         | 
| 30 | 
            +
                    multicast_id: @response["multicast_id"],
         | 
| 31 | 
            +
                    success_count: @response["success"],
         | 
| 32 | 
            +
                    failure_count: @response["failure"]
         | 
| 33 | 
            +
                  )
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
            end
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            module JeraPush::Services
         | 
| 2 | 
            +
              class TopicService < JeraPush::Services::BaseService
         | 
| 3 | 
            +
                DEFAULT_TOPIC = 'general'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                def initialize(*)
         | 
| 6 | 
            +
                  super
         | 
| 7 | 
            +
                end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                def subscribe(device:, topic: DEFAULT_TOPIC)
         | 
| 10 | 
            +
                  @firebase.add_device_to_topic(device: device, topic: topic)
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                def unsubscribe(device:, topic: DEFAULT_TOPIC)
         | 
| 14 | 
            +
                  @firebase.remove_device_from_topic(devices: [device], topic: topic)
         | 
| 15 | 
            +
                end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
            end
         | 
    
        data/lib/jera_push/version.rb
    CHANGED
    
    
    
        data/lib/jera_push.rb
    CHANGED
    
    | @@ -5,10 +5,19 @@ require 'kaminari' | |
| 5 5 | 
             
            require 'jera_push/engine'
         | 
| 6 6 | 
             
            require 'jera_push/firebase/client'
         | 
| 7 7 | 
             
            require 'jera_push/firebase/api_result'
         | 
| 8 | 
            +
            require 'googleauth'
         | 
| 9 | 
            +
            require 'google/apis/fcm_v1'
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            require 'jera_push/services/base_service'
         | 
| 8 12 | 
             
            require 'jera_push/services/send_message'
         | 
| 13 | 
            +
            require 'jera_push/services/send_push_service'
         | 
| 14 | 
            +
            require 'jera_push/services/send_to_device_service'
         | 
| 15 | 
            +
            require 'jera_push/services/send_to_devices_service'
         | 
| 16 | 
            +
            require 'jera_push/services/send_to_everyone_service'
         | 
| 17 | 
            +
            require 'jera_push/services/send_to_topic_service'
         | 
| 18 | 
            +
            require 'jera_push/services/topic_service'
         | 
| 9 19 |  | 
| 10 20 | 
             
            module JeraPush
         | 
| 11 | 
            -
             | 
| 12 21 | 
             
              autoload :Device, 'jera_push/models/device.rb'
         | 
| 13 22 | 
             
              autoload :Message, 'jera_push/models/message.rb'
         | 
| 14 23 | 
             
              autoload :MessageDevice, 'jera_push/models/message_device.rb'
         | 
| @@ -17,11 +26,20 @@ module JeraPush | |
| 17 26 | 
             
              mattr_accessor :firebase_api_key
         | 
| 18 27 | 
             
              @@firebase_api_key = nil
         | 
| 19 28 |  | 
| 29 | 
            +
              mattr_accessor :project_name
         | 
| 30 | 
            +
              @@project_name = nil
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              mattr_accessor :project_id
         | 
| 33 | 
            +
              @@project_id = nil
         | 
| 34 | 
            +
             | 
| 20 35 | 
             
              mattr_accessor :default_topic
         | 
| 21 36 | 
             
              @@default_topic = 'jera_push_development'
         | 
| 22 37 |  | 
| 23 38 | 
             
              mattr_accessor :resources_name
         | 
| 24 39 | 
             
              @@resources_name = nil
         | 
| 40 | 
            +
              
         | 
| 41 | 
            +
              mattr_accessor :credentials_path
         | 
| 42 | 
            +
              @@credentials_path = nil
         | 
| 25 43 |  | 
| 26 44 | 
             
              mattr_accessor :resource_attributes
         | 
| 27 45 | 
             
              @@resource_attributes = []
         | 
| @@ -29,7 +47,6 @@ module JeraPush | |
| 29 47 | 
             
              mattr_accessor :admin_login
         | 
| 30 48 | 
             
              @@resources_name =  { username: 'jera_push', password: 'JeraPushAdmin' }
         | 
| 31 49 |  | 
| 32 | 
            -
             | 
| 33 50 | 
             
              def self.setup
         | 
| 34 51 | 
             
                yield self
         | 
| 35 52 | 
             
              end
         | 
| @@ -42,7 +59,4 @@ module JeraPush | |
| 42 59 | 
             
                @@ios_topic ||= "#{@@default_topic}_ios"
         | 
| 43 60 | 
             
              end
         | 
| 44 61 |  | 
| 45 | 
            -
              def self.topic_chrome
         | 
| 46 | 
            -
                @@chrome_topic ||= "#{@@default_topic}_chrome"
         | 
| 47 | 
            -
              end
         | 
| 48 62 | 
             
            end
         |