Module: DataPagos
- Defined in:
- lib/datapagos.rb,
lib/datapagos/token.rb,
lib/datapagos/charge.rb,
lib/datapagos/subscription.rb
Overview
Ruby client of the DataPagos API
Defined Under Namespace
Classes: Charge, Subscription, Token
Class Attribute Summary collapse
-
.base_url ⇒ Object
Returns the value of attribute base_url.
-
.public_key ⇒ Object
Returns the value of attribute public_key.
-
.secret_key ⇒ Object
Returns the value of attribute secret_key.
Class Method Summary collapse
- .get(resource) ⇒ Object
- .get_http(uri) ⇒ Object
- .parse_json_response(response) ⇒ Object
- .post(resource, body = {}) ⇒ Object
Class Attribute Details
.base_url ⇒ Object
Returns the value of attribute base_url.
9 10 11 |
# File 'lib/datapagos.rb', line 9 def base_url @base_url end |
.public_key ⇒ Object
Returns the value of attribute public_key.
9 10 11 |
# File 'lib/datapagos.rb', line 9 def public_key @public_key end |
.secret_key ⇒ Object
Returns the value of attribute secret_key.
9 10 11 |
# File 'lib/datapagos.rb', line 9 def secret_key @secret_key end |
Class Method Details
.get(resource) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/datapagos.rb', line 13 def self.get(resource) uri = URI.parse("#{base_url}#{resource}") http = get_http(uri) request = Net::HTTP::Get.new(uri.path) request.basic_auth public_key, secret_key request['Accept'] = 'application/json' response = http.request(request) parse_json_response(response) end |
.get_http(uri) ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/datapagos.rb', line 39 def self.get_http(uri) http = Net::HTTP.new(uri.host, uri.port) if uri.scheme == 'https' http.use_ssl = true end return http end |
.parse_json_response(response) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/datapagos.rb', line 48 def self.parse_json_response(response) case response when Net::HTTPSuccess if response.body && !response.body.strip.empty? then JSON.parse(response.body) else #TODO Make this more readable true end else response.error! end end |
.post(resource, body = {}) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/datapagos.rb', line 25 def self.post(resource, body = {}) uri = URI.parse("#{base_url}#{resource}") http = get_http(uri) request = Net::HTTP::Post.new(uri.path) request.basic_auth public_key, secret_key request['Content-Type'] = 'application/json' request['Accept'] = 'application/json' request.body = body.to_json response = http.request(request) parse_json_response(response) end |