mangopay 3.0.19 → 3.0.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mangopay.rb +16 -3
- data/lib/mangopay/bank_account.rb +2 -2
- data/lib/mangopay/dispute.rb +6 -6
- data/lib/mangopay/http_calls.rb +10 -5
- data/lib/mangopay/kyc_document.rb +4 -4
- data/lib/mangopay/pre_authorization.rb +2 -2
- data/lib/mangopay/temp.rb +2 -2
- data/lib/mangopay/transaction.rb +0 -1
- data/lib/mangopay/version.rb +1 -1
- data/spec/mangopay/idempotency_spec +41 -0
- data/spec/mangopay/shared_resources.rb +6 -3
- data/spec/mangopay/transaction_spec.rb +0 -7
- data/spec/mangopay/wallet_spec.rb +0 -7
- data/spec/spec_helper.rb +14 -6
- metadata +15 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59eb15c892bf9c2910edac5e22503bfcf6b9dcac
|
4
|
+
data.tar.gz: 8457994e7e6dc82e85c826846b2f5406a484e729
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3722786d484342d20e913a2b3836b38b5239603c53225e2816d90995b60c61ef1d8409fd91528cbf98ae0eb7b96446f6070f7c4fef58747c226c2e157042eeb1
|
7
|
+
data.tar.gz: c49c240cf33683a926ee11525c5c20d162c28cf494880feff76cbe57a611e51478708791ee4a8eeda6f7fc63c243d11417f8b841b8491ac6483187b304608ba8
|
data/lib/mangopay.rb
CHANGED
@@ -74,15 +74,22 @@ module MangoPay
|
|
74
74
|
# - +url+: the part after Configuration#root_url
|
75
75
|
# - +params+: hash; entity data for creation, update etc.; will dump it by JSON and assign to Net::HTTPRequest#body
|
76
76
|
# - +filters+: hash; pagination params etc.; will encode it by URI and assign to URI#query
|
77
|
-
# - +
|
77
|
+
# - +headers_or_idempotency_key+: hash of headers; or replaced by request_headers if nil; or added to request_headers as idempotency key otherwise (see https://docs.mangopay.com/api-references/idempotency-support/)
|
78
78
|
# - +before_request_proc+: optional proc; will call it passing the Net::HTTPRequest instance just before Net::HTTPRequest#request
|
79
79
|
#
|
80
80
|
# Raises MangoPay::ResponseError if response code != 200.
|
81
81
|
#
|
82
|
-
def request(method, url, params={}, filters={},
|
82
|
+
def request(method, url, params={}, filters={}, headers_or_idempotency_key = nil, before_request_proc = nil)
|
83
83
|
uri = api_uri(url)
|
84
84
|
uri.query = URI.encode_www_form(filters) unless filters.empty?
|
85
85
|
|
86
|
+
if headers_or_idempotency_key.is_a?(Hash)
|
87
|
+
headers = headers_or_idempotency_key
|
88
|
+
else
|
89
|
+
headers = request_headers
|
90
|
+
headers['Idempotency-Key'] = headers_or_idempotency_key if headers_or_idempotency_key != nil
|
91
|
+
end
|
92
|
+
|
86
93
|
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
|
87
94
|
req = Net::HTTP::const_get(method.capitalize).new(uri.request_uri, headers)
|
88
95
|
req.body = JSON.dump(params)
|
@@ -93,7 +100,6 @@ module MangoPay
|
|
93
100
|
# decode json data
|
94
101
|
data = JSON.load(res.body.to_s) rescue {}
|
95
102
|
|
96
|
-
|
97
103
|
unless res.is_a?(Net::HTTPOK)
|
98
104
|
raise MangoPay::ResponseError.new(uri, res.code, data)
|
99
105
|
end
|
@@ -106,6 +112,13 @@ module MangoPay
|
|
106
112
|
data
|
107
113
|
end
|
108
114
|
|
115
|
+
# Retrieve a previous response by idempotency_key
|
116
|
+
# See https://docs.mangopay.com/api-references/idempotency-support/
|
117
|
+
def fetch_response(idempotency_key)
|
118
|
+
url = "#{api_path}/responses/#{idempotency_key}"
|
119
|
+
request(:get, url)
|
120
|
+
end
|
121
|
+
|
109
122
|
private
|
110
123
|
|
111
124
|
def user_agent
|
@@ -4,9 +4,9 @@ module MangoPay
|
|
4
4
|
class BankAccount < Resource
|
5
5
|
include HTTPCalls::Fetch
|
6
6
|
class << self
|
7
|
-
def create(user_id, params)
|
7
|
+
def create(user_id, params, idempotency_key = nil)
|
8
8
|
type = params.fetch(:Type) { |no_symbol_key| params.fetch('Type') }
|
9
|
-
MangoPay.request(:post, "#{url(user_id)}/#{type}", params)
|
9
|
+
MangoPay.request(:post, "#{url(user_id)}/#{type}", params, {}, idempotency_key)
|
10
10
|
end
|
11
11
|
|
12
12
|
# Fetches:
|
data/lib/mangopay/dispute.rb
CHANGED
@@ -51,9 +51,9 @@ module MangoPay
|
|
51
51
|
end
|
52
52
|
|
53
53
|
# +params+: hash; see https://docs.mangopay.com/api-references/disputes/settlement-transfers/
|
54
|
-
def create_settlement_transfer(repudiation_id, params)
|
54
|
+
def create_settlement_transfer(repudiation_id, params, idempotency_key = nil)
|
55
55
|
url = "#{MangoPay.api_path}/repudiations/#{repudiation_id}/settlementtransfer/"
|
56
|
-
MangoPay.request(:post, url, params)
|
56
|
+
MangoPay.request(:post, url, params, {}, idempotency_key)
|
57
57
|
end
|
58
58
|
|
59
59
|
#####################################################
|
@@ -61,9 +61,9 @@ module MangoPay
|
|
61
61
|
#####################################################
|
62
62
|
|
63
63
|
# +params+: hash; see https://docs.mangopay.com/api-references/disputes/dispute-documents/
|
64
|
-
def create_document(dispute_id, params)
|
64
|
+
def create_document(dispute_id, params, idempotency_key = nil)
|
65
65
|
url = url(dispute_id) + "/documents/"
|
66
|
-
MangoPay.request(:post, url, params)
|
66
|
+
MangoPay.request(:post, url, params, {}, idempotency_key)
|
67
67
|
end
|
68
68
|
|
69
69
|
def fetch_document(document_id)
|
@@ -105,7 +105,7 @@ module MangoPay
|
|
105
105
|
# - Base64 encoded file content
|
106
106
|
# - or nil: in this case pass the file path in the next param
|
107
107
|
#
|
108
|
-
def create_document_page(dispute_id, document_id, file_content_base64, file_path = nil)
|
108
|
+
def create_document_page(dispute_id, document_id, file_content_base64, file_path = nil, idempotency_key = nil)
|
109
109
|
if file_content_base64.nil? && !file_path.nil?
|
110
110
|
bts = File.open(file_path, 'rb') { |f| f.read }
|
111
111
|
file_content_base64 = Base64.encode64(bts)
|
@@ -113,7 +113,7 @@ module MangoPay
|
|
113
113
|
# normally it returns 204 HTTP code on success
|
114
114
|
begin
|
115
115
|
url = url(dispute_id) + "/documents/#{document_id}/pages"
|
116
|
-
MangoPay.request(:post, url, {'File' => file_content_base64})
|
116
|
+
MangoPay.request(:post, url, {'File' => file_content_base64}, {}, idempotency_key)
|
117
117
|
rescue ResponseError => ex
|
118
118
|
raise ex unless ex.code == '204'
|
119
119
|
end
|
data/lib/mangopay/http_calls.rb
CHANGED
@@ -3,9 +3,14 @@ module MangoPay
|
|
3
3
|
module Create
|
4
4
|
module ClassMethods
|
5
5
|
|
6
|
-
def create(
|
7
|
-
|
8
|
-
|
6
|
+
def create(params, id = nil, idempotency_key = nil)
|
7
|
+
# LEGACY SUPPORT FOR OLD SIGNATURE: def create(*id, params)
|
8
|
+
if !params.is_a?(Hash) && id.is_a?(Hash)
|
9
|
+
temp = params
|
10
|
+
params = id
|
11
|
+
id = temp
|
12
|
+
end
|
13
|
+
MangoPay.request(:post, url(id), params, {}, idempotency_key)
|
9
14
|
end
|
10
15
|
end
|
11
16
|
|
@@ -67,8 +72,8 @@ module MangoPay
|
|
67
72
|
|
68
73
|
# See http://docs.mangopay.com/api-references/refund/%E2%80%A2-refund-a-pay-in/
|
69
74
|
# See http://docs.mangopay.com/api-references/refund/%E2%80%A2-refund-a-transfer/
|
70
|
-
def refund(id = nil, params = {})
|
71
|
-
MangoPay.request(:post, url(id) + '/refunds', params)
|
75
|
+
def refund(id = nil, params = {}, idempotency_key = nil)
|
76
|
+
MangoPay.request(:post, url(id) + '/refunds', params, {}, idempotency_key)
|
72
77
|
end
|
73
78
|
end
|
74
79
|
|
@@ -5,8 +5,8 @@ module MangoPay
|
|
5
5
|
# See http://docs.mangopay.com/api-references/kyc/documents/
|
6
6
|
class KycDocument < Resource
|
7
7
|
class << self
|
8
|
-
def create(user_id, params)
|
9
|
-
MangoPay.request(:post, url(user_id), params)
|
8
|
+
def create(user_id, params, idempotency_key = nil)
|
9
|
+
MangoPay.request(:post, url(user_id), params, {}, idempotency_key)
|
10
10
|
end
|
11
11
|
|
12
12
|
def update(user_id, document_id, params = {})
|
@@ -44,14 +44,14 @@ module MangoPay
|
|
44
44
|
# - Base64 encoded file content
|
45
45
|
# - or nil: in this case pass the file path in the next param
|
46
46
|
#
|
47
|
-
def create_page(user_id, document_id, file_content_base64, file_path = nil)
|
47
|
+
def create_page(user_id, document_id, file_content_base64, file_path = nil, idempotency_key = nil)
|
48
48
|
if file_content_base64.nil? && !file_path.nil?
|
49
49
|
bts = File.open(file_path, 'rb') { |f| f.read }
|
50
50
|
file_content_base64 = Base64.encode64(bts)
|
51
51
|
end
|
52
52
|
# normally it returns 204 HTTP code on success
|
53
53
|
begin
|
54
|
-
MangoPay.request(:post, url(user_id, document_id) + '/pages', {'File' => file_content_base64})
|
54
|
+
MangoPay.request(:post, url(user_id, document_id) + '/pages', {'File' => file_content_base64}, {}, idempotency_key)
|
55
55
|
rescue ResponseError => ex
|
56
56
|
raise ex unless ex.code == '204'
|
57
57
|
end
|
@@ -5,8 +5,8 @@ module MangoPay
|
|
5
5
|
include HTTPCalls::Update
|
6
6
|
include HTTPCalls::Fetch
|
7
7
|
|
8
|
-
def self.create(params)
|
9
|
-
MangoPay.request(:post, "#{url}/card/direct", params)
|
8
|
+
def self.create(params, idempotency_key = nil)
|
9
|
+
MangoPay.request(:post, "#{url}/card/direct", params, {}, idempotency_key)
|
10
10
|
end
|
11
11
|
|
12
12
|
end
|
data/lib/mangopay/temp.rb
CHANGED
@@ -57,9 +57,9 @@ module MangoPay
|
|
57
57
|
# Received data:
|
58
58
|
# Normal card web payin transaction, with the addition of:
|
59
59
|
# - PaymentCardId e.g. "322311"
|
60
|
-
def self.immediate_payin(params)
|
60
|
+
def self.immediate_payin(params, idempotency_key = nil)
|
61
61
|
url = "#{MangoPay.api_path}/temp/immediate-payins"
|
62
|
-
MangoPay.request(:post, url, params)
|
62
|
+
MangoPay.request(:post, url, params, {}, idempotency_key)
|
63
63
|
end
|
64
64
|
|
65
65
|
def self.url(id = nil)
|
data/lib/mangopay/transaction.rb
CHANGED
@@ -9,7 +9,6 @@ module MangoPay
|
|
9
9
|
# - +Status+: TransactionStatus {CREATED, SUCCEEDED, FAILED}
|
10
10
|
# - +Type+: TransactionType {PAYIN, PAYOUT, TRANSFER}
|
11
11
|
# - +Nature+: TransactionNature {NORMAL, REFUND, REPUDIATION}
|
12
|
-
# - +Direction+: TransactionDirection {DEBIT, CREDIT}
|
13
12
|
# - +BeforeDate+ (timestamp): filters transactions with CreationDate _before_ this date
|
14
13
|
# - +AfterDate+ (timestamp): filters transactions with CreationDate _after_ this date
|
15
14
|
def fetch(wallet_id, filters={})
|
data/lib/mangopay/version.rb
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
describe MangoPay do
|
2
|
+
|
3
|
+
# see https://docs.mangopay.com/api-references/idempotency-support/
|
4
|
+
|
5
|
+
include_context 'users'
|
6
|
+
require 'securerandom'
|
7
|
+
|
8
|
+
describe 'post requests' do
|
9
|
+
|
10
|
+
it 'if called with no idempotency key, act independently' do
|
11
|
+
u = define_new_natural_user
|
12
|
+
u1 = MangoPay::NaturalUser.create(u)
|
13
|
+
u2 = MangoPay::NaturalUser.create(u)
|
14
|
+
expect(u2['Id']).to be > u1['Id']
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'if called with same idempotency key, the 2nd call is blocked' do
|
18
|
+
idempotency_key = SecureRandom.uuid
|
19
|
+
u = define_new_natural_user
|
20
|
+
u1 = MangoPay::NaturalUser.create(u, nil, idempotency_key)
|
21
|
+
expect {
|
22
|
+
u2 = MangoPay::NaturalUser.create(u, nil, idempotency_key)
|
23
|
+
}.to raise_error(MangoPay::ResponseError)
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'if called with different idempotency key, act independently and responses may be retreived later' do
|
27
|
+
idempotency_key1 = SecureRandom.uuid
|
28
|
+
idempotency_key2 = SecureRandom.uuid
|
29
|
+
u = define_new_natural_user
|
30
|
+
u1 = MangoPay::NaturalUser.create(u, nil, idempotency_key1)
|
31
|
+
u2 = MangoPay::NaturalUser.create(u, nil, idempotency_key2)
|
32
|
+
expect(u2['Id']).to be > u1['Id']
|
33
|
+
|
34
|
+
resp1 = MangoPay.fetch_response(idempotency_key1)
|
35
|
+
resp2 = MangoPay.fetch_response(idempotency_key2)
|
36
|
+
expect(resp1['Resource']['Id']).to eq u1['Id']
|
37
|
+
expect(resp2['Resource']['Id']).to eq u2['Id']
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
@@ -34,8 +34,8 @@ shared_context 'users' do
|
|
34
34
|
###############################################
|
35
35
|
|
36
36
|
let(:new_natural_user) { create_new_natural_user }
|
37
|
-
def
|
38
|
-
|
37
|
+
def define_new_natural_user
|
38
|
+
{
|
39
39
|
Tag: 'Test natural user',
|
40
40
|
Email: 'my@email.com',
|
41
41
|
FirstName: 'John',
|
@@ -54,7 +54,10 @@ shared_context 'users' do
|
|
54
54
|
CountryOfResidence: 'FR',
|
55
55
|
Occupation: 'Worker',
|
56
56
|
IncomeRange: 1
|
57
|
-
}
|
57
|
+
}
|
58
|
+
end
|
59
|
+
def create_new_natural_user
|
60
|
+
MangoPay::NaturalUser.create(define_new_natural_user)
|
58
61
|
end
|
59
62
|
|
60
63
|
let(:new_legal_user) {
|
@@ -48,13 +48,6 @@ describe MangoPay::Transaction do
|
|
48
48
|
expect(by_type_pyout.count).to eq 1
|
49
49
|
expect(by_type_pyin.first['Id']).to eq payin['Id']
|
50
50
|
expect(by_type_pyout.first['Id']).to eq payout['Id']
|
51
|
-
|
52
|
-
by_dir_cred = MangoPay::Transaction.fetch(wallet_id, {'Direction' => 'CREDIT'})
|
53
|
-
by_dir_debt = MangoPay::Transaction.fetch(wallet_id, {'Direction' => 'DEBIT'})
|
54
|
-
expect(by_dir_cred.count).to eq 1
|
55
|
-
expect(by_dir_debt.count).to eq 1
|
56
|
-
expect(by_dir_cred.first['Id']).to eq payin['Id']
|
57
|
-
expect(by_dir_debt.first['Id']).to eq payout['Id']
|
58
51
|
end
|
59
52
|
|
60
53
|
end
|
@@ -74,13 +74,6 @@ describe MangoPay::Wallet do
|
|
74
74
|
expect(by_type_pyout.count).to eq 1
|
75
75
|
expect(by_type_pyin.first['Id']).to eq payin['Id']
|
76
76
|
expect(by_type_pyout.first['Id']).to eq payout['Id']
|
77
|
-
|
78
|
-
by_dir_cred = MangoPay::Wallet.transactions(wallet_id, {'Direction' => 'CREDIT'})
|
79
|
-
by_dir_debt = MangoPay::Wallet.transactions(wallet_id, {'Direction' => 'DEBIT'})
|
80
|
-
expect(by_dir_cred.count).to eq 1
|
81
|
-
expect(by_dir_debt.count).to eq 1
|
82
|
-
expect(by_dir_cred.first['Id']).to eq payin['Id']
|
83
|
-
expect(by_dir_debt.first['Id']).to eq payout['Id']
|
84
77
|
end
|
85
78
|
|
86
79
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,7 +8,15 @@ def reset_mangopay_configuration
|
|
8
8
|
MangoPay.configure do |c|
|
9
9
|
c.preproduction = true
|
10
10
|
c.client_id = 'sdk-unit-tests'
|
11
|
-
|
11
|
+
|
12
|
+
# sandbox environment:
|
13
|
+
# c.root_url = 'https://api.sandbox.mangopay.com'
|
14
|
+
# c.client_passphrase = 'cqFfFrWfCcb7UadHNxx2C9Lo6Djw8ZduLi7J9USTmu8bhxxpju'
|
15
|
+
|
16
|
+
# test environment:
|
17
|
+
c.root_url = 'https://api-test.mangopay.com'
|
18
|
+
c.client_passphrase = '9RMGpwVUwFLK0SurxObJ2yaadDcO0zeKFKxWmthjB93SQjFzy0'
|
19
|
+
|
12
20
|
c.temp_dir = File.expand_path('../tmp', __FILE__)
|
13
21
|
require 'fileutils'
|
14
22
|
FileUtils.mkdir_p(c.temp_dir) unless File.directory?(c.temp_dir)
|
@@ -19,8 +27,8 @@ reset_mangopay_configuration
|
|
19
27
|
|
20
28
|
################################################################################
|
21
29
|
# uncomment it for logging all http calls in tests
|
22
|
-
#require 'http_logger'
|
23
|
-
#require 'logger'
|
24
|
-
#HttpLogger.logger = Logger.new(STDOUT)
|
25
|
-
#HttpLogger.colorize = true
|
26
|
-
#HttpLogger.log_headers = false
|
30
|
+
# require 'http_logger'
|
31
|
+
# require 'logger'
|
32
|
+
# HttpLogger.logger = Logger.new(STDOUT)
|
33
|
+
# HttpLogger.colorize = true
|
34
|
+
# HttpLogger.log_headers = true # false
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mangopay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geoffroy Lorieux
|
@@ -9,48 +9,48 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-01-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 1.7.7
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 1.7.7
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: 10.1.0
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 10.1.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rspec
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: 3.0.0
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 3.0.0
|
56
56
|
description: |2
|
@@ -63,8 +63,8 @@ executables:
|
|
63
63
|
extensions: []
|
64
64
|
extra_rdoc_files: []
|
65
65
|
files:
|
66
|
-
- .gitignore
|
67
|
-
- .rspec
|
66
|
+
- ".gitignore"
|
67
|
+
- ".rspec"
|
68
68
|
- Gemfile
|
69
69
|
- LICENSE
|
70
70
|
- README.md
|
@@ -108,6 +108,7 @@ files:
|
|
108
108
|
- spec/mangopay/event_spec.rb
|
109
109
|
- spec/mangopay/fetch_filters_spec.rb
|
110
110
|
- spec/mangopay/hook_spec.rb
|
111
|
+
- spec/mangopay/idempotency_spec
|
111
112
|
- spec/mangopay/kyc_document_spec.png
|
112
113
|
- spec/mangopay/kyc_document_spec.rb
|
113
114
|
- spec/mangopay/payin_bankwire_direct_spec.rb
|
@@ -136,17 +137,17 @@ require_paths:
|
|
136
137
|
- lib
|
137
138
|
required_ruby_version: !ruby/object:Gem::Requirement
|
138
139
|
requirements:
|
139
|
-
- -
|
140
|
+
- - ">="
|
140
141
|
- !ruby/object:Gem::Version
|
141
142
|
version: 1.9.2
|
142
143
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
144
|
requirements:
|
144
|
-
- -
|
145
|
+
- - ">="
|
145
146
|
- !ruby/object:Gem::Version
|
146
147
|
version: '0'
|
147
148
|
requirements: []
|
148
149
|
rubyforge_project:
|
149
|
-
rubygems_version: 2.
|
150
|
+
rubygems_version: 2.4.5.1
|
150
151
|
signing_key:
|
151
152
|
specification_version: 4
|
152
153
|
summary: Ruby bindings for the version 2 of the MangoPay API
|
@@ -161,6 +162,7 @@ test_files:
|
|
161
162
|
- spec/mangopay/event_spec.rb
|
162
163
|
- spec/mangopay/fetch_filters_spec.rb
|
163
164
|
- spec/mangopay/hook_spec.rb
|
165
|
+
- spec/mangopay/idempotency_spec
|
164
166
|
- spec/mangopay/kyc_document_spec.png
|
165
167
|
- spec/mangopay/kyc_document_spec.rb
|
166
168
|
- spec/mangopay/payin_bankwire_direct_spec.rb
|