class Firebase::Messaging::Request

Attributes

body[R]
priority[RW]

Public Class Methods

new() click to toggle source
# File lib/firebase/messaging/request.rb, line 12
def initialize
  @connector = Faraday.new(url: Firebase::Messaging.configure.base_url, headers: Firebase::Messaging.configure.headers) do |faraday|
    faraday.request :url_encoded # form-encode POST params
    faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
    faraday.response :logger # log requests to STDOUT
    faraday.use :instrumentation
  end
  @body = Body.new
  @priority = :high
end

Public Instance Methods

post() click to toggle source
# File lib/firebase/messaging/request.rb, line 35
def post
  Firebase::Messaging.logger.debug("Request. body: #{build_body}")
  res = @connector.post do |req|
    req.body = build_body
  end
  Firebase::Messaging::Response.bind(type, status: res.status, body: res.body, headers: res.headers).tap do |response|
    log_level = response.success? ? :info : :warn
    Firebase::Messaging.logger.send(log_level, "Response. status: #{res.status}, body: #{res.body}")
  end
end
to() click to toggle source
# File lib/firebase/messaging/request.rb, line 27
def to
  @for
end
to=(push_for) click to toggle source
# File lib/firebase/messaging/request.rb, line 23
def to=(push_for)
  @for = Firebase::Messaging::Request::For.new(push_for)
end
type() click to toggle source
# File lib/firebase/messaging/request.rb, line 31
def type
  @for.type
end

Private Instance Methods

build_body() click to toggle source
# File lib/firebase/messaging/request.rb, line 48
def build_body
  { priority: @priority }.merge(@for.payload).merge(@body.payload).to_json
end