class Rgcm::RequestBuilder

Constants

URI

Attributes

api_key[R]
data[R]
options[R]
registration_ids[R]

Public Class Methods

new(api_key, registration_ids, options, data) click to toggle source
# File lib/rgcm/request_builder.rb, line 8
def initialize(api_key, registration_ids,  options, data)
  @api_key = api_key
  @registration_ids = registration_ids.kind_of?(Array) ? registration_ids : [registration_ids]
  @options = options
  @data = data
end

Public Instance Methods

build() click to toggle source
# File lib/rgcm/request_builder.rb, line 15
def build
  Typhoeus::Request.new(URI, headers: headers, method: :post, body: body.to_json, followlocation: true)
end

Private Instance Methods

body() click to toggle source
# File lib/rgcm/request_builder.rb, line 25
def body
  body = {'registration_ids' => registration_ids}
  if options.present?
    body.merge!('collapse_key' => options[:collapse_key]) if options.has_key?(:collapse_key)
    body.merge!('time_to_live' => options[:time_to_live]) if options.has_key?(:time_to_live)
    body.merge!('delay_while_idle' => true) if options.has_key?(:time_to_live)
  end
  body.merge!('data' => data) if data.present?
  body
end
headers() click to toggle source
# File lib/rgcm/request_builder.rb, line 21
def headers
  {'Authorization' => "key=#{api_key}", 'Content-Type' => 'application/json'}
end