conekta 0.3.3 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.gitignore +5 -11
- data/CHANGELOG +5 -0
- data/Gemfile +6 -1
- data/LICENSE.txt +22 -0
- data/README.md +59 -0
- data/Rakefile +1 -14
- data/conekta.gemspec +22 -22
- data/lib/conekta.rb +36 -290
- data/lib/conekta/card.rb +10 -34
- data/lib/conekta/charge.rb +14 -38
- data/lib/conekta/conekta_object.rb +64 -136
- data/lib/conekta/customer.rb +23 -25
- data/lib/conekta/error.rb +65 -0
- data/lib/conekta/event.rb +2 -2
- data/lib/conekta/operations/create.rb +19 -0
- data/lib/conekta/operations/create_member.rb +30 -0
- data/lib/conekta/operations/custom_action.rb +17 -0
- data/lib/conekta/operations/delete.rb +43 -0
- data/lib/conekta/operations/find.rb +28 -0
- data/lib/conekta/operations/update.rb +13 -0
- data/lib/conekta/operations/where.rb +28 -0
- data/lib/conekta/payment_method.rb +4 -0
- data/lib/conekta/plan.rb +8 -5
- data/lib/conekta/requestor.rb +55 -0
- data/lib/conekta/resource.rb +13 -0
- data/lib/conekta/subscription.rb +12 -26
- data/lib/conekta/token.rb +3 -2
- data/lib/conekta/util.rb +19 -91
- data/lib/conekta/version.rb +1 -1
- data/lib/ssl_data/ca_bundle.crt +66 -0
- data/spec/conekta_spec.rb +299 -808
- data/spec/spec_helper.rb +12 -0
- metadata +55 -72
- data/CONTRIBUTORS +0 -9
- data/Gemfile.lock +0 -57
- data/History.txt +0 -4
- data/LICENSE +0 -23
- data/README.rdoc +0 -30
- data/VERSION +0 -1
- data/bin/conekta-console +0 -7
- data/bin/test calls +0 -205
- data/gemfiles/default-with-activesupport.gemfile +0 -3
- data/gemfiles/json.gemfile +0 -4
- data/gemfiles/yajl.gemfile +0 -4
- data/lib/conekta/account.rb +0 -4
- data/lib/conekta/api_operations/create.rb +0 -16
- data/lib/conekta/api_operations/create_member.rb +0 -18
- data/lib/conekta/api_operations/delete.rb +0 -11
- data/lib/conekta/api_operations/list.rb +0 -16
- data/lib/conekta/api_operations/modify_member.rb +0 -12
- data/lib/conekta/api_operations/update.rb +0 -22
- data/lib/conekta/api_resource.rb +0 -33
- data/lib/conekta/errors/api_connection_error.rb +0 -4
- data/lib/conekta/errors/api_error.rb +0 -4
- data/lib/conekta/errors/authentication_error.rb +0 -4
- data/lib/conekta/errors/card_error.rb +0 -11
- data/lib/conekta/errors/conekta_error.rb +0 -20
- data/lib/conekta/errors/malformed_request_error.rb +0 -10
- data/lib/conekta/errors/parameter_validation_error.rb +0 -10
- data/lib/conekta/errors/resource_not_found_error.rb +0 -10
- data/lib/conekta/json.rb +0 -21
- data/lib/conekta/list_object.rb +0 -35
- data/lib/conekta/log.rb +0 -5
- data/lib/conekta/singleton_api_resource.rb +0 -20
- data/lib/data/ca-certificates.crt +0 -3918
- data/spec/conekta_with_active_support_spec.rb +0 -3
- data/spec/test_helper.rb +0 -338
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZjY5ODgxZWFmM2I5Y2QxNDYwMmI2OGE3YWRiYmQxODhiMmE3ZGRkMw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NWYyNTQyMTIzMzhiNGMwNTJlNGFjZjgzNDdlMDgwZjU3OWYxYzNkOQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MWYxMDZmMzBmNmIyZDFiNTllNmUyZjg1OGFjMzcxZTQyYzExOTA5MTY1ODc1
|
10
|
+
MzZjZTgwMDJiYjFjMjIzNmE3ZmVmM2FiNDU4MTI5NDIyZjJiNzYxNzkwZGFm
|
11
|
+
NDAzY2U0Y2ZlNWYyMTU5YjY3NGY0Y2EwYzg1OGIyZWI5MzQzZDA=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NTY5Y2NhYjUyNDQ3NDRjZTJkYWQwN2RiN2RiNzNlYjUwYzIwNzNmMTcyY2E0
|
14
|
+
MzIxM2E3YTUyMDBiMjBhMTViN2I1NDE5ODIyYTRjMGM3MTEyYmFiMDc1Y2Zj
|
15
|
+
OWJlNmNjNzlkNzMwN2I5M2FmNmYzZWMxYjJhMTA3YmEwZDNhZDk=
|
data/.gitignore
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
*.gem
|
2
|
-
*.swo
|
3
|
-
*.swn
|
4
|
-
*.swm
|
5
|
-
*.swp
|
6
|
-
*~
|
7
2
|
*.rbc
|
8
3
|
.bundle
|
9
4
|
.config
|
10
|
-
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
11
7
|
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
12
11
|
lib/bundler/man
|
13
12
|
pkg
|
14
13
|
rdoc
|
@@ -16,8 +15,3 @@ spec/reports
|
|
16
15
|
test/tmp
|
17
16
|
test/version_tmp
|
18
17
|
tmp
|
19
|
-
|
20
|
-
# YARD artifacts
|
21
|
-
.yardoc
|
22
|
-
_yardoc
|
23
|
-
doc/
|
data/CHANGELOG
ADDED
data/Gemfile
CHANGED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013- Conekta (https://www.conekta.io)
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# Conekta
|
2
|
+
|
3
|
+
This is a ruby library that allows interaction with https://api.conekta.io API.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'conekta'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install conekta
|
18
|
+
|
19
|
+
## Usage
|
20
|
+
|
21
|
+
Conekta.api_key = '1tv5yJp3xnVZ7eK67m4h'
|
22
|
+
@my_card = {number: '4242424242424242', exp_month: 5, exp_year: 2015, cvc: 123, name: 'Mario Moreno'}
|
23
|
+
begin
|
24
|
+
charge = Conekta::Charge.create({card: @my_card, description: 'Some desc', amount: 2000, currency: 'mxn'})
|
25
|
+
p charge
|
26
|
+
rescue Conekta::Error
|
27
|
+
# Catch all exceptions including validation errors.
|
28
|
+
e.message
|
29
|
+
end
|
30
|
+
|
31
|
+
{
|
32
|
+
"id": "5286828b8ee31e64b7001739",
|
33
|
+
"livemode": false,
|
34
|
+
"created_at": 1384546955,
|
35
|
+
"status": "paid",
|
36
|
+
"currency": "MXN",
|
37
|
+
"description": "Some desc",
|
38
|
+
"reference_id": null,
|
39
|
+
"failure_code": null,
|
40
|
+
"failure_message": null,
|
41
|
+
"object": "charge",
|
42
|
+
"amount": 2000,
|
43
|
+
"fee": 371,
|
44
|
+
"payment_method": {
|
45
|
+
"name": "Mario Moreno",
|
46
|
+
"exp_month": "05",
|
47
|
+
"exp_year": "15",
|
48
|
+
"auth_code": "861491",
|
49
|
+
"object": "card_payment",
|
50
|
+
"last4": "4242",
|
51
|
+
"brand": "visa"
|
52
|
+
},
|
53
|
+
"details": {
|
54
|
+
"name": null,
|
55
|
+
"phone": null,
|
56
|
+
"email": null,
|
57
|
+
"line_items": []
|
58
|
+
}
|
59
|
+
}
|
data/Rakefile
CHANGED
@@ -1,14 +1 @@
|
|
1
|
-
require
|
2
|
-
task :default => [:spec]
|
3
|
-
|
4
|
-
|
5
|
-
RSpec::Core::RakeTask.new(:spec)
|
6
|
-
|
7
|
-
|
8
|
-
#task :test do
|
9
|
-
# ret = true
|
10
|
-
# Dir["test/**/*.rb"].each do |f|
|
11
|
-
# ret = ret && ruby(f, '')
|
12
|
-
# end
|
13
|
-
# exit(ret)
|
14
|
-
# end
|
1
|
+
require "bundler/gem_tasks"
|
data/conekta.gemspec
CHANGED
@@ -1,27 +1,27 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
4
|
require 'conekta/version'
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
s.add_dependency('rest-client', '~> 1.4')
|
15
|
-
s.add_dependency('multi_json', '>= 1.0.4', '< 2')
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "conekta"
|
8
|
+
spec.version = Conekta::VERSION
|
9
|
+
spec.authors = ["MauricioMurga"]
|
10
|
+
spec.email = ["mauricio@conekta.io"]
|
11
|
+
spec.description = %q{Ruby library for https://api.conekta.io}
|
12
|
+
spec.summary = %q{This library provides https://api.conekta.io operations}
|
13
|
+
spec.homepage = "https://www.conekta.io"
|
14
|
+
spec.license = "MIT"
|
16
15
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
s.add_development_dependency('rake')
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
spec.require_paths = ["lib"]
|
22
20
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
21
|
+
spec.add_dependency "bundler", "~> 1.3"
|
22
|
+
spec.add_dependency "rake"
|
23
|
+
spec.add_dependency "rspec"
|
24
|
+
spec.add_dependency "faraday"
|
25
|
+
spec.add_dependency "json"
|
26
|
+
spec.add_dependency "sys-uname"
|
27
27
|
end
|
data/lib/conekta.rb
CHANGED
@@ -1,299 +1,45 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require
|
4
|
-
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
|
10
|
-
|
11
|
-
require
|
12
|
-
|
13
|
-
|
14
|
-
require
|
15
|
-
require
|
16
|
-
require
|
17
|
-
require
|
18
|
-
require
|
19
|
-
require
|
20
|
-
|
21
|
-
|
22
|
-
require
|
23
|
-
require
|
24
|
-
require
|
25
|
-
require
|
26
|
-
require 'conekta/singleton_api_resource'
|
27
|
-
require 'conekta/account'
|
28
|
-
require 'conekta/list_object'
|
29
|
-
require 'conekta/charge'
|
30
|
-
require 'conekta/subscription'
|
31
|
-
require 'conekta/customer'
|
32
|
-
require 'conekta/card'
|
33
|
-
require 'conekta/token'
|
34
|
-
require 'conekta/plan'
|
35
|
-
require 'conekta/event'
|
36
|
-
require 'conekta/log'
|
37
|
-
|
38
|
-
# Errors
|
39
|
-
require 'conekta/errors/conekta_error'
|
40
|
-
require 'conekta/errors/api_error'
|
41
|
-
require 'conekta/errors/api_connection_error'
|
42
|
-
require 'conekta/errors/card_error'
|
43
|
-
require 'conekta/errors/resource_not_found_error'
|
44
|
-
require 'conekta/errors/malformed_request_error'
|
45
|
-
require 'conekta/errors/parameter_validation_error'
|
46
|
-
require 'conekta/errors/authentication_error'
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
require "conekta/version"
|
4
|
+
|
5
|
+
require "conekta/operations/find"
|
6
|
+
require "conekta/operations/where"
|
7
|
+
require "conekta/operations/create"
|
8
|
+
require "conekta/operations/delete"
|
9
|
+
require "conekta/operations/update"
|
10
|
+
require "conekta/operations/custom_action"
|
11
|
+
require "conekta/operations/create_member"
|
12
|
+
|
13
|
+
require "conekta/conekta_object"
|
14
|
+
require "conekta/resource"
|
15
|
+
require "conekta/requestor"
|
16
|
+
require "conekta/util"
|
17
|
+
require "conekta/error"
|
18
|
+
require "conekta/payment_method"
|
19
|
+
require "conekta/charge"
|
20
|
+
require "conekta/customer"
|
21
|
+
require "conekta/card"
|
22
|
+
require "conekta/subscription"
|
23
|
+
require "conekta/plan"
|
24
|
+
require "conekta/token"
|
25
|
+
require "conekta/event"
|
47
26
|
|
48
27
|
module Conekta
|
49
28
|
@api_base = 'https://api.conekta.io'
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
class << self
|
55
|
-
attr_accessor :api_key, :api_base, :verify_ssl_certs, :api_version
|
56
|
-
end
|
57
|
-
|
58
|
-
def self.api_url(url='')
|
59
|
-
url = @api_base + url
|
60
|
-
if not url.match(/\.json/)
|
61
|
-
url = url + '.json'
|
62
|
-
end
|
63
|
-
url
|
64
|
-
end
|
65
|
-
|
66
|
-
def self.request(method, url, api_key, params={}, headers={})
|
67
|
-
unless api_key ||= @api_key
|
68
|
-
raise AuthenticationError.new('No API key provided. ' +
|
69
|
-
'Set your API key using "Conekta.api_key = <API-KEY>". ' +
|
70
|
-
'You can generate API keys from the Conekta web interface. ' +
|
71
|
-
'See https://conekta.io/api for details, or email support@conekta.io ' +
|
72
|
-
'if you have any questions.')
|
73
|
-
end
|
74
|
-
|
75
|
-
if api_key =~ /\s/
|
76
|
-
raise AuthenticationError.new('Your API key is invalid, as it contains ' +
|
77
|
-
'whitespace. (HINT: You can double-check your API key from the ' +
|
78
|
-
'Conekta web interface. See https://conekta.io/api for details, or ' +
|
79
|
-
'email support@conekta.io if you have any questions.)')
|
80
|
-
end
|
81
|
-
|
82
|
-
request_opts = { :verify_ssl => false }
|
83
|
-
|
84
|
-
if ssl_preflight_passed?
|
85
|
-
request_opts.update(:verify_ssl => OpenSSL::SSL::VERIFY_PEER,
|
86
|
-
:ssl_ca_file => @ssl_bundle_path)
|
87
|
-
end
|
88
|
-
|
89
|
-
params = Util.objects_to_ids(params)
|
90
|
-
url = api_url(url)
|
91
|
-
|
92
|
-
case method.to_s.downcase.to_sym
|
93
|
-
when :get, :head, :delete
|
94
|
-
# Make params into GET parameters
|
95
|
-
url += "#{URI.parse(url).query ? '&' : '?'}#{uri_encode(params)}" if params && params.any?
|
96
|
-
payload = nil
|
97
|
-
else
|
98
|
-
payload = params.to_json#uri_encode(params)
|
99
|
-
headers[:content_type] = 'application/json'
|
100
|
-
end
|
101
|
-
|
102
|
-
request_opts.update(:headers => request_headers(api_key).update(headers),
|
103
|
-
:method => method, :open_timeout => 30,
|
104
|
-
:payload => payload, :url => url, :timeout => 80)
|
105
|
-
|
106
|
-
begin
|
107
|
-
response = execute_request(request_opts)
|
108
|
-
rescue SocketError => e
|
109
|
-
handle_restclient_error(e)
|
110
|
-
rescue NoMethodError => e
|
111
|
-
# Work around RestClient bug
|
112
|
-
if e.message =~ /\WRequestFailed\W/
|
113
|
-
e = APIConnectionError.new('Unexpected HTTP response code')
|
114
|
-
handle_restclient_error(e)
|
115
|
-
else
|
116
|
-
raise
|
117
|
-
end
|
118
|
-
rescue RestClient::ExceptionWithResponse => e
|
119
|
-
if rcode = e.http_code and rbody = e.http_body
|
120
|
-
handle_api_error(rcode, rbody)
|
121
|
-
else
|
122
|
-
handle_restclient_error(e)
|
123
|
-
end
|
124
|
-
rescue RestClient::Exception, Errno::ECONNREFUSED => e
|
125
|
-
handle_restclient_error(e)
|
126
|
-
end
|
127
|
-
|
128
|
-
[parse(response), api_key]
|
129
|
-
end
|
130
|
-
|
131
|
-
private
|
132
|
-
|
133
|
-
def self.ssl_preflight_passed?
|
134
|
-
if !verify_ssl_certs && !@no_verify
|
135
|
-
$stderr.puts "WARNING: Running without SSL cert verification. " +
|
136
|
-
"Execute 'Conekta.verify_ssl_certs = true' to enable verification."
|
137
|
-
|
138
|
-
@no_verify = true
|
139
|
-
|
140
|
-
elsif !Util.file_readable(@ssl_bundle_path) && !@no_bundle
|
141
|
-
$stderr.puts "WARNING: Running without SSL cert verification " +
|
142
|
-
"because #{@ssl_bundle_path} isn't readable"
|
143
|
-
|
144
|
-
@no_bundle = true
|
145
|
-
end
|
146
|
-
|
147
|
-
!(@no_verify || @no_bundle)
|
148
|
-
end
|
149
|
-
|
150
|
-
def self.user_agent
|
151
|
-
@uname ||= get_uname
|
152
|
-
lang_version = "#{RUBY_VERSION} p#{RUBY_PATCHLEVEL} (#{RUBY_RELEASE_DATE})"
|
153
|
-
|
154
|
-
{
|
155
|
-
:bindings_version => Conekta::VERSION,
|
156
|
-
:lang => 'ruby',
|
157
|
-
:lang_version => lang_version,
|
158
|
-
:platform => RUBY_PLATFORM,
|
159
|
-
:publisher => 'conekta',
|
160
|
-
:uname => @uname
|
161
|
-
}
|
162
|
-
|
163
|
-
end
|
164
|
-
|
165
|
-
def self.get_uname
|
166
|
-
`uname -a 2>/dev/null`.strip if RUBY_PLATFORM =~ /linux|darwin/i
|
167
|
-
rescue Errno::ENOMEM => ex # couldn't create subprocess
|
168
|
-
"uname lookup failed"
|
169
|
-
end
|
170
|
-
|
171
|
-
def self.uri_encode(params)
|
172
|
-
Util.flatten_params(params).
|
173
|
-
map { |k,v| "#{k}=#{Util.url_encode(v)}" }.join('&')
|
174
|
-
end
|
175
|
-
|
176
|
-
def self.request_headers(api_key)
|
177
|
-
headers = {
|
178
|
-
:user_agent => "Conekta RubyBindings/#{Conekta::VERSION}",
|
179
|
-
:authorization => "Basic #{Base64.encode64(api_key+':')}"
|
180
|
-
}
|
181
|
-
|
182
|
-
if api_version
|
183
|
-
headers.update(:accept=>"application/vnd.conekta-v#{api_version}+json")
|
184
|
-
else
|
185
|
-
headers.update(:accept=>"application/vnd.conekta-v0.3.0+json")
|
186
|
-
end
|
187
|
-
|
188
|
-
begin
|
189
|
-
headers.update(:conekta_client_user_agent => Conekta::JSON.dump(user_agent))
|
190
|
-
rescue => e
|
191
|
-
headers.update(:conekta_client_raw_user_agent => user_agent.inspect,
|
192
|
-
:error => "#{e} (#{e.class})")
|
193
|
-
end
|
194
|
-
end
|
195
|
-
|
196
|
-
def self.execute_request(opts)
|
197
|
-
RestClient::Request.execute(opts)
|
198
|
-
end
|
199
|
-
|
200
|
-
def self.parse(response)
|
201
|
-
begin
|
202
|
-
# Would use :symbolize_names => true, but apparently there is
|
203
|
-
# some library out there that makes symbolize_names not work.
|
204
|
-
response = Conekta::JSON.load(response.body)
|
205
|
-
rescue MultiJson::DecodeError
|
206
|
-
raise general_api_error(response.code, response.body)
|
207
|
-
end
|
208
|
-
|
209
|
-
Util.symbolize_names(response)
|
210
|
-
end
|
211
|
-
|
212
|
-
def self.general_api_error(rcode, rbody)
|
213
|
-
APIError.new("Invalid response object from API: #{rbody.inspect} " +
|
214
|
-
"(HTTP response code was #{rcode})", rcode, rbody)
|
215
|
-
end
|
216
|
-
|
217
|
-
def self.handle_api_error(rcode, rbody)
|
218
|
-
begin
|
219
|
-
error_obj = Conekta::JSON.load(rbody)
|
220
|
-
error_obj = Util.symbolize_names(error_obj)
|
221
|
-
error = error_obj or raise ConektaError.new # escape from parsing
|
222
|
-
|
223
|
-
rescue MultiJson::DecodeError, ConektaError
|
224
|
-
raise general_api_error(rcode, rbody)
|
225
|
-
end
|
226
|
-
|
227
|
-
case rcode
|
228
|
-
when 400
|
229
|
-
raise malformed_request_error error, rcode, rbody, error_obj
|
230
|
-
when 401
|
231
|
-
raise authentication_error error, rcode, rbody, error_obj
|
232
|
-
when 402
|
233
|
-
raise card_error error, rcode, rbody, error_obj
|
234
|
-
when 404
|
235
|
-
raise resource_not_found_error error, rcode, rbody, error_obj
|
236
|
-
when 422
|
237
|
-
raise parameter_validation_error error, rcode, rbody, error_obj
|
238
|
-
else
|
239
|
-
raise api_error error, rcode, rbody, error_obj
|
240
|
-
end
|
241
|
-
|
242
|
-
end
|
243
|
-
|
244
|
-
def self.resource_not_found_error(error, rcode, rbody, error_obj)
|
245
|
-
ResourceNotFoundError.new(error[:message], error[:param], rcode,
|
246
|
-
rbody, error_obj)
|
247
|
-
end
|
248
|
-
|
249
|
-
def self.malformed_request_error(error, rcode, rbody, error_obj)
|
250
|
-
MalformedRequestError.new(error[:message], error[:param], rcode,
|
251
|
-
rbody, error_obj)
|
252
|
-
end
|
253
|
-
|
254
|
-
def self.parameter_validation_error(error, rcode, rbody, error_obj)
|
255
|
-
ParameterValidationError.new(error[:message], error[:param], rcode,
|
256
|
-
rbody, error_obj)
|
29
|
+
@api_version = '0.3.0'
|
30
|
+
def self.api_base
|
31
|
+
@api_base
|
257
32
|
end
|
258
|
-
|
259
|
-
|
260
|
-
AuthenticationError.new(error[:message], rcode, rbody, error_obj)
|
33
|
+
def self.api_base=(api_base)
|
34
|
+
@api_base = api_base
|
261
35
|
end
|
262
|
-
|
263
|
-
|
264
|
-
CardError.new(error[:message], error[:param], error[:code],
|
265
|
-
rcode, rbody, error_obj)
|
36
|
+
def self.api_version
|
37
|
+
@api_version
|
266
38
|
end
|
267
|
-
|
268
|
-
|
269
|
-
APIError.new(error[:message], rcode, rbody, error_obj)
|
39
|
+
def self.api_key
|
40
|
+
@api_key
|
270
41
|
end
|
271
|
-
|
272
|
-
|
273
|
-
case e
|
274
|
-
when RestClient::ServerBrokeConnection, RestClient::RequestTimeout
|
275
|
-
message = "Could not connect to Conekta (#{@api_base}). " +
|
276
|
-
"Please check your internet connection and try again. " +
|
277
|
-
"If this problem persists, you should check Conekta's service status at " +
|
278
|
-
"https://twitter.com/conektastatus, or let us know at support@conekta.io."
|
279
|
-
|
280
|
-
when RestClient::SSLCertificateNotVerified
|
281
|
-
message = "Could not verify Conekta's SSL certificate. " +
|
282
|
-
"Please make sure that your network is not intercepting certificates. " +
|
283
|
-
"(Try going to https://api.conekta.io/ in your browser.) " +
|
284
|
-
"If this problem persists, let us know at support@conekta.io."
|
285
|
-
|
286
|
-
when SocketError
|
287
|
-
message = "Unexpected error communicating when trying to connect to Conekta. " +
|
288
|
-
"You may be seeing this message because your DNS is not working. " +
|
289
|
-
"To check, try running 'host conekta.io' from the command line."
|
290
|
-
|
291
|
-
else
|
292
|
-
message = "Unexpected error communicating with Conekta. " +
|
293
|
-
"If this problem persists, let us know at support@conekta.io."
|
294
|
-
|
295
|
-
end
|
296
|
-
|
297
|
-
raise APIConnectionError.new(message + "\n\n(Network error: #{e.message})")
|
42
|
+
def self.api_key=(api_key)
|
43
|
+
@api_key = api_key
|
298
44
|
end
|
299
45
|
end
|