class OneSignal::OneSignal

Public Class Methods

api_key() click to toggle source
# File lib/one_signal/one_signal.rb, line 18
def self.api_key
  @@api_key
end
api_key=(new_api_key) click to toggle source
# File lib/one_signal/one_signal.rb, line 14
def self.api_key=(new_api_key)
  @@api_key = new_api_key
end
http_object(uri: nil) click to toggle source
# File lib/one_signal/one_signal.rb, line 46
def self.http_object(uri: nil)
  return nil if uri.nil?

  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = uri.scheme == 'https'
  http.open_timeout = @@open_timeout
  http.read_timeout = @@read_timeout
  return http
end
open_timeout() click to toggle source
# File lib/one_signal/one_signal.rb, line 34
def self.open_timeout
  @@open_timeout
end
open_timeout=(new_timeout) click to toggle source
# File lib/one_signal/one_signal.rb, line 30
def self.open_timeout=(new_timeout)
  @@open_timeout = new_timeout
end
read_timeout() click to toggle source
# File lib/one_signal/one_signal.rb, line 42
def self.read_timeout
  @@read_timeout
end
read_timeout=(new_timeout) click to toggle source
# File lib/one_signal/one_signal.rb, line 38
def self.read_timeout=(new_timeout)
  @@read_timeout = new_timeout
end
send_delete_request(uri: nil, params: {}, opts: {}) click to toggle source
# File lib/one_signal/one_signal.rb, line 68
def self.send_delete_request(uri: nil, params: {}, opts: {})
  return nil if uri.nil?

  uri.query = URI.encode_www_form(params) unless params.nil?
  request = Net::HTTP::Delete.new(uri.request_uri)
  request = request_with_headers(request: request, opts: opts)
  
  http = http_object(uri: uri)

  return http.request(request)
end
send_get_request(uri: nil, params: {}, opts: {}) click to toggle source
# File lib/one_signal/one_signal.rb, line 92
def self.send_get_request(uri: nil, params: {}, opts: {})
  return nil if uri.nil?

  uri.query = URI.encode_www_form(params) unless params.nil?
  request = Net::HTTP::Get.new(uri.request_uri)
  request = request_with_headers(request: request, opts: opts)
  
  http = http_object(uri: uri)

  return http.request(request)
end
send_post_request(uri: nil, body: nil, opts: {}) click to toggle source
# File lib/one_signal/one_signal.rb, line 56
def self.send_post_request(uri: nil, body: nil, opts: {})
  return nil if uri.nil?

  request = Net::HTTP::Post.new(uri.request_uri)
  request.body = body.to_json
  request = request_with_headers(request: request, opts: opts)
  
  http = http_object(uri: uri)

  return http.request(request)
end
send_put_request(uri: nil, body: nil, opts: {}) click to toggle source
# File lib/one_signal/one_signal.rb, line 80
def self.send_put_request(uri: nil, body: nil, opts: {})
  return nil if uri.nil?

  request = Net::HTTP::Put.new(uri.request_uri)
  request.body = body.to_json
  request = request_with_headers(request: request, opts: opts)
  
  http = http_object(uri: uri)

  return http.request(request)
end
user_auth_key() click to toggle source
# File lib/one_signal/one_signal.rb, line 26
def self.user_auth_key
  @@user_auth_key
end
user_auth_key=(new_user_auth_key) click to toggle source
# File lib/one_signal/one_signal.rb, line 22
def self.user_auth_key=(new_user_auth_key)
  @@user_auth_key = new_user_auth_key
end

Private Class Methods

ensure_http_status(response: nil, status: nil, method_name: "", uri: "", params: {}) click to toggle source
# File lib/one_signal/one_signal.rb, line 106
def self.ensure_http_status(response: nil, status: nil, method_name: "", uri: "", params: {})
  if response.nil? || status.nil?
    raise OneSignalError.new(message: "Please provide a response (#{response}) and a status (#{status})")
  end

  if response.code != status.to_s
    msg = "#{self.name}##{method_name} error - uri: #{uri} params: #{params}"
    raise OneSignalError.new(message: msg,
                             http_status: response.code,
                             http_body: response.body)
  end
end
request_with_headers(request: nil, opts: {}) click to toggle source
# File lib/one_signal/one_signal.rb, line 119
def self.request_with_headers(request: nil, opts: {})
  return nil if request.nil?

  request.add_field("Content-Type", "application/json")
  request.add_field("Authorization", "Basic #{opts[:auth_key]}")
  return request
end