class Segurofacil::REST::Request

Constants

DEFAULT_HEADERS

Attributes

method[R]
parameters[R]
path[R]

Public Class Methods

new(path, method, options={}) click to toggle source
# File lib/segurofacil/rest/request.rb, line 16
def initialize(path, method, options={})
  @path = path
  @method = method
  @parameters = options.fetch(:params, Hash.new)
end
post(path, options={}) click to toggle source
# File lib/segurofacil/rest/request.rb, line 42
def post(path, options={})
  self.new path, 'POST', options
end

Public Instance Methods

perform() click to toggle source
# File lib/segurofacil/rest/request.rb, line 22
def perform
  json_res = {}

  begin
    res = RestClient::Request.execute request_params
    json_res[:body] = MultiJson.load res.body
    json_res[:code] = res.code
  rescue RestClient::ExceptionWithResponse => e
    parsed_error = MultiJson.load e.http_body

    json_res[:error] = true
    json_res[:body] = parsed_error
    json_res[:code] = e.response.code
  end

  json_res
end

Private Instance Methods

credentials() click to toggle source
# File lib/segurofacil/rest/request.rb, line 63
def credentials
  {
    credentials: {
      email: Segurofacil.email,
      password: Segurofacil.password
    }
  }
end
request_params() click to toggle source
# File lib/segurofacil/rest/request.rb, line 50
def request_params
  {
    method: method,
    url: resource_url,
    payload: parameters.merge(credentials),
    headers: DEFAULT_HEADERS
  }
end
resource_url() click to toggle source
# File lib/segurofacil/rest/request.rb, line 59
def resource_url
  "#{Segurofacil.api_base}/#{Segurofacil.partner_name}/#{path}"
end