Class: Conekta::Requestor

Inherits:
Object
  • Object
show all
Includes:
Sys
Defined in:
lib/conekta/requestor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRequestor

Returns a new instance of Requestor.



8
9
10
# File 'lib/conekta/requestor.rb', line 8

def initialize()
  @api_key = Conekta.api_key
end

Instance Attribute Details

#api_keyObject (readonly)

Returns the value of attribute api_key.



7
8
9
# File 'lib/conekta/requestor.rb', line 7

def api_key
  @api_key
end

Instance Method Details

#api_url(url = '') ⇒ Object



11
12
13
14
# File 'lib/conekta/requestor.rb', line 11

def api_url(url='')
  api_base = Conekta.api_base
  api_base + url
end

#request(meth, url, params = nil) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/conekta/requestor.rb', line 15

def request(meth, url, params=nil)
  url = self.api_url(url)
  meth = meth.downcase
  begin      
    conn = Faraday.new(
	 	:url => url,
		:ssl => { :ca_file=> File.dirname(__FILE__) + '/../ssl_data/ca_bundle.crt'}
      ) do |faraday|
      faraday.adapter  Faraday.default_adapter
    end
	  conn.headers['X-Conekta-Client-User-Agent'] = set_headers.to_json
      conn.headers['User-Agent'] = 'Conekta/v1 RubyBindings/' + Conekta::VERSION
      conn.headers['Accept'] = "application/vnd.conekta-v#{Conekta.api_version}+json"
      conn.headers['Accept-Language'] = Conekta.locale
      conn.headers['Authorization'] = "Basic #{ Base64.encode64("#{self.api_key}" + ':')}"
	  if params
  conn.params = params
	  end
	  response = conn.method(meth).call
 rescue Exception => e
    Error.error_handler(e, "")
  end
  if response.status != 200
    Error.error_handler(JSON.parse(response.body), response.status)
  end
  return JSON.parse(response.body)
end