module Pushpad::Request

Public Instance Methods

delete(endpoint, options = {}) click to toggle source
# File lib/pushpad/request.rb, line 28
def delete(endpoint, options = {})
  perform(Net::HTTP::Delete, endpoint, options)
end
get(endpoint, options = {}) click to toggle source
# File lib/pushpad/request.rb, line 12
def get(endpoint, options = {})
  perform(Net::HTTP::Get, endpoint, options)
end
head(endpoint, options = {}) click to toggle source
# File lib/pushpad/request.rb, line 8
def head(endpoint, options = {})
  perform(Net::HTTP::Head, endpoint, options)
end
patch(endpoint, body, options = {}) click to toggle source
# File lib/pushpad/request.rb, line 22
def patch(endpoint, body, options = {})
  perform(Net::HTTP::Patch, endpoint, options) do |request|
    request.body = body
  end
end
post(endpoint, body, options = {}) click to toggle source
# File lib/pushpad/request.rb, line 16
def post(endpoint, body, options = {})
  perform(Net::HTTP::Post, endpoint, options) do |request|
    request.body = body
  end
end

Private Instance Methods

headers() click to toggle source
# File lib/pushpad/request.rb, line 57
def headers
  raise "You must set Pushpad.auth_token" unless Pushpad.auth_token
  {
    "Authorization" => %(Token token="#{Pushpad.auth_token}"),
    "Content-Type" => "application/json;charset=UTF-8",
    "Accept" => "application/json"
  }
end
https(uri, request) click to toggle source
# File lib/pushpad/request.rb, line 51
def https(uri, request)
  Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |https|
    https.request(request)
  end
end
path_and_query(uri, query_parameters) click to toggle source
# File lib/pushpad/request.rb, line 43
def path_and_query(uri, query_parameters)
  [uri.path, query(query_parameters)].compact.join("?")
end
perform(method, endpoint, options) { |request| ... } click to toggle source
# File lib/pushpad/request.rb, line 34
def perform(method, endpoint, options)
  uri = URI.parse(endpoint)
  request = method.new(path_and_query(uri, options[:query_parameters]), headers)

  yield request if block_given?

  https(uri, request)
end
query(parameters) click to toggle source
# File lib/pushpad/request.rb, line 47
def query(parameters)
  parameters && !parameters.empty? ? URI.encode_www_form(parameters) : nil
end