class Sendowl::Request

Constants

DEFAULT_HEADERS

Attributes

headers[RW]
method[RW]
model[RW]
parameters[RW]
path[RW]
query[RW]

Public Class Methods

new(path, method, model, options={}) click to toggle source
# File lib/sendowl/request.rb, line 15
def initialize(path, method, model, options={})
  @path       = path
  @method     = method
  @model      = model
  @parameters = options[:params]  || {}
  @query      = options[:query]   || {}
  @headers    = options[:headers] || {}
end

Public Instance Methods

call() click to toggle source
# File lib/sendowl/request.rb, line 29
def call
  model.parse run
end
run() click to toggle source
# File lib/sendowl/request.rb, line 24
def run
  response = RestClient::Request.execute request_params
  JSON.parse response.body
end

Protected Instance Methods

api_url() click to toggle source
# File lib/sendowl/request.rb, line 49
def api_url
  url = Sendowl.api_endpoint + path
  url += '?' + URI.encode_www_form(query) unless query.empty?

  url
end
request_params() click to toggle source
# File lib/sendowl/request.rb, line 35
def request_params
  {
    method:       method,
    user:         Sendowl.api_key,
    password:     Sendowl.api_secret,
    url:          api_url,
    payload:      JSON.generate(parameters),
    open_timeout: Sendowl.open_timeout,
    timeout:      Sendowl.timeout,
    headers:      DEFAULT_HEADERS.merge(headers),
    ssl_version:  'TLSv1_2'
  }
end