class Google::Apis::Messages::MessagesService

Attributes

project_id[RW]

@return [String] Your project ID from Google Firebase Console console.firebase.google.com/

Public Class Methods

new(project_id:) click to toggle source

@param project_id: [String]

Calls superclass method
# File lib/google/apis/messages/service.rb, line 16
def initialize(project_id:)
  @project_id = project_id

  super('https://fcm.googleapis.com/', 'v1/projects/{projectId}/')
end

Public Instance Methods

notify(message, options: nil, &block)
Alias for: notify_topic
notify_topic(message, options: nil, &block) click to toggle source

Notify topic subscribers with message @see firebase.google.com/docs/cloud-messaging/send-message

@param message [Google::Apis::Messages::Message]

# File lib/google/apis/messages/service.rb, line 26
def notify_topic(message, options: nil, &block)
  command = make_simple_command(:post, 'messages:send', options)
  command.request_representation = Google::Apis::Messages::Message::Representation
  command.request_object = message

  if !ENV['FIREBASE_DEBUG'].nil?
    log_json(command)
  end

  execute_or_queue_command(command, &block)
end
Also aliased as: notify

Protected Instance Methods

apply_command_defaults(command) click to toggle source
# File lib/google/apis/messages/service.rb, line 42
def apply_command_defaults(command)
  command.params['projectId'] = project_id
end
log_json(command) click to toggle source
# File lib/google/apis/messages/service.rb, line 46
def log_json(command)
  json = command.request_representation.new(command.request_object)
    .to_json(user_options: { skip_undefined: true })
  json_hash = JSON.parse(json)
  log_message = "About to send json: \n #{pp json_hash}"

  if defined?(Rails)
    Rails.logger.debug log_message
  else
    puts log_message
  end
end