class OneSignal::Request

Public Class Methods

new(client) click to toggle source
# File lib/onesignal/request.rb, line 5
def initialize(client)
  @client = client
end

Public Instance Methods

delete(path, params = {}) click to toggle source
# File lib/onesignal/request.rb, line 31
def delete(path, params = {})
  uri = uri(path)

  if @client.app_id
    params[:app_id] = @client.app_id
  end

  uri.query = URI.encode_www_form(params)

  request(uri, Net::HTTP::Delete, params)
end
get(path, params = {}) click to toggle source
# File lib/onesignal/request.rb, line 9
def get(path, params = {})
  uri = uri(path)

  if @client.app_id
    params[:app_id] = @client.app_id
  end

  uri.query = URI.encode_www_form(params)

  request(uri, Net::HTTP::Get)
end
post(path, params) click to toggle source
# File lib/onesignal/request.rb, line 21
def post(path, params)
  uri = uri(path)
  request(uri, Net::HTTP::Post, params)
end
put(path, params) click to toggle source
# File lib/onesignal/request.rb, line 26
def put(path, params)
  uri = uri(path)
  request(uri, Net::HTTP::Put, params)
end

Private Instance Methods

add_headers(request) click to toggle source
# File lib/onesignal/request.rb, line 73
def add_headers(request)
  request.add_field('Content-Type', 'application/json')
  request.add_field('Authorization', "Basic #{@client.auth_token}")
end
ensure_success(response, uri, params = nil) click to toggle source
# File lib/onesignal/request.rb, line 87
def ensure_success(response, uri, params = nil)
  if response.code != '200'
    message = "OneSignal error - uri: #{uri} - params: #{params}"
    raise RequestError.new(message, response.code, response.body)
  end
end
http_object(uri) click to toggle source
# File lib/onesignal/request.rb, line 78
def http_object(uri)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.open_timeout = 30
  http.read_timeout = 30

  http
end
make_request(uri, request) click to toggle source
# File lib/onesignal/request.rb, line 67
def make_request(uri, request)
  add_headers(request)
  http = http_object(uri)
  http.request(request)
end
request(uri, klass, params = nil) click to toggle source
# File lib/onesignal/request.rb, line 49
def request(uri, klass, params = nil)
  request = klass.new(uri.request_uri)

  if params && @client.app_id
    params[:app_id] = @client.app_id
  end

  if params
    request.body = params.to_json
  end

  response = make_request(uri, request)

  ensure_success(response, uri, params)

  response
end
uri(path) click to toggle source
# File lib/onesignal/request.rb, line 45
def uri(path)
  URI.parse(OneSignal::Client::BASE_URL + path)
end