mangopay 3.0.21 → 3.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/mangopay.rb +1 -0
- data/lib/mangopay/bank_account.rb +5 -0
- data/lib/mangopay/client.rb +40 -7
- data/lib/mangopay/report.rb +17 -0
- data/lib/mangopay/transaction.rb +1 -0
- data/lib/mangopay/version.rb +1 -1
- data/spec/mangopay/bank_account_spec.rb +13 -1
- data/spec/mangopay/client_spec.rb +62 -26
- data/spec/mangopay/dispute_spec.rb +8 -0
- data/spec/mangopay/report_spec.rb +39 -0
- data/spec/mangopay/shared_resources.rb +0 -31
- data/spec/spec_helper.rb +1 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 66c9892c195aece2222cf16271e0f667feb321fe
|
4
|
+
data.tar.gz: d1b4c622c63bbc55a6689bbf458d9aaabb9f157d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d95ae1f194bf4b1efa39c4ecc353fd93b77b59ce838f17efea87fa13ef20d8f200f9c5d0deb6aa931948f559d03df7846db703be45f7b79103c3fd140c3e850
|
7
|
+
data.tar.gz: 8c3f0400d5f58c06f9f0af78e83329b4dd1c1170d210da2b1a677fc03f7854f965572eeb1ace71cd0257b5051cd9392312ef8ac4dca97c0705ffeaab9d5815b3
|
data/README.md
CHANGED
@@ -94,7 +94,7 @@ on the [Gem's Github](https://github.com/Mangopay/mangopay2-ruby-sdk/issues)
|
|
94
94
|
1. Fork the repo.
|
95
95
|
|
96
96
|
2. Run the tests. We only take pull requests with passing tests, and it's great
|
97
|
-
to know that you have a clean slate: `bundle && bundle exec
|
97
|
+
to know that you have a clean slate: `bundle && bundle exec rspec`
|
98
98
|
|
99
99
|
3. Add a test for your change. Only refactoring and documentation changes
|
100
100
|
require no new tests. If you are adding functionality or fixing a bug, we need
|
data/lib/mangopay.rb
CHANGED
@@ -31,6 +31,7 @@ module MangoPay
|
|
31
31
|
autoload :Refund, 'mangopay/refund'
|
32
32
|
autoload :Dispute, 'mangopay/dispute'
|
33
33
|
autoload :Mandate, 'mangopay/mandate'
|
34
|
+
autoload :Report, 'mangopay/report'
|
34
35
|
autoload :JSON, 'mangopay/json'
|
35
36
|
autoload :AuthorizationToken, 'mangopay/authorization_token'
|
36
37
|
|
@@ -21,6 +21,11 @@ module MangoPay
|
|
21
21
|
MangoPay.request(:get, url(user_id, bank_account_id), {}, filters)
|
22
22
|
end
|
23
23
|
|
24
|
+
# see https://docs.mangopay.com/endpoints/v2.01/bank-accounts#e306_disactivate-a-bank-account
|
25
|
+
def update(user_id, bank_account_id, params = {})
|
26
|
+
MangoPay.request(:put, url(user_id, bank_account_id), params)
|
27
|
+
end
|
28
|
+
|
24
29
|
def url(user_id, bank_account_id = nil)
|
25
30
|
if bank_account_id
|
26
31
|
"#{MangoPay.api_path}/users/#{CGI.escape(user_id.to_s)}/bankaccounts/#{CGI.escape(bank_account_id.to_s)}"
|
data/lib/mangopay/client.rb
CHANGED
@@ -5,13 +5,6 @@ module MangoPay
|
|
5
5
|
|
6
6
|
class << self
|
7
7
|
|
8
|
-
def create(params)
|
9
|
-
MangoPay.request(:post, '/clients/', params, {}, {
|
10
|
-
'user_agent' => "MangoPay V2 RubyBindings/#{VERSION}",
|
11
|
-
'Content-Type' => 'application/json'
|
12
|
-
})
|
13
|
-
end
|
14
|
-
|
15
8
|
# see https://docs.mangopay.com/api-references/client-details/
|
16
9
|
def fetch()
|
17
10
|
MangoPay.request(:get, url())
|
@@ -36,6 +29,46 @@ module MangoPay
|
|
36
29
|
end
|
37
30
|
end
|
38
31
|
|
32
|
+
# Fetch all your client wallets;
|
33
|
+
# +funds_type+ may be:
|
34
|
+
# - nil: all wallets
|
35
|
+
# - 'fees': fees wallets
|
36
|
+
# - 'credit': credit wallets
|
37
|
+
# see https://docs.mangopay.com/api-references/client-wallets/
|
38
|
+
def fetch_wallets(funds_type = nil)
|
39
|
+
MangoPay.request(:get, url() + "/wallets/#{funds_type}")
|
40
|
+
end
|
41
|
+
|
42
|
+
# Fetch one of your client wallets (fees or credit) with a particular currency;
|
43
|
+
# +funds_type+ may be:
|
44
|
+
# - nil: all wallets
|
45
|
+
# - 'fees': fees wallets
|
46
|
+
# - 'credit': credit wallets
|
47
|
+
# +currency_iso_code+ is currncy ISO code
|
48
|
+
# see https://docs.mangopay.com/api-references/client-wallets/
|
49
|
+
def fetch_wallet(funds_type, currency_iso_code)
|
50
|
+
MangoPay.request(:get, url() + "/wallets/#{funds_type}/#{currency_iso_code}")
|
51
|
+
end
|
52
|
+
|
53
|
+
# Fetch transactions for all your client wallets.
|
54
|
+
# Optional +filters+ hash: see MangoPay::Transaction.fetch
|
55
|
+
# See https://docs.mangopay.com/api-references/client-wallets/
|
56
|
+
def fetch_wallets_transactions(filters = {})
|
57
|
+
MangoPay.request(:get, url() + "/transactions", {}, filters)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Fetch transactions for one of your client wallets (fees or credit) with a particular currency;
|
61
|
+
# +funds_type+ may be:
|
62
|
+
# - nil: all wallets
|
63
|
+
# - 'fees': fees wallets
|
64
|
+
# - 'credit': credit wallets
|
65
|
+
# +currency_iso_code+ is currncy ISO code
|
66
|
+
# Optional +filters+ hash: see MangoPay::Transaction.fetch
|
67
|
+
# See https://docs.mangopay.com/api-references/client-wallets/
|
68
|
+
def fetch_wallet_transactions(funds_type, currency_iso_code, filters = {})
|
69
|
+
MangoPay.request(:get, url() + "/wallets/#{funds_type}/#{currency_iso_code}/transactions", {}, filters)
|
70
|
+
end
|
71
|
+
|
39
72
|
end
|
40
73
|
end
|
41
74
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module MangoPay
|
2
|
+
|
3
|
+
# See https://docs.mangopay.com/endpoints/v2.01/reporting
|
4
|
+
class Report < Resource
|
5
|
+
include HTTPCalls::Fetch
|
6
|
+
|
7
|
+
class << self
|
8
|
+
|
9
|
+
# +params+: hash; see https://docs.mangopay.com/endpoints/v2.01/reporting#e825_create-a-transaction-report
|
10
|
+
def create(params, idempotency_key = nil)
|
11
|
+
url = url() + '/transactions/'
|
12
|
+
MangoPay.request(:post, url, params, {}, idempotency_key)
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/mangopay/transaction.rb
CHANGED
@@ -11,6 +11,7 @@ module MangoPay
|
|
11
11
|
# - +Nature+: TransactionNature {NORMAL, REFUND, REPUDIATION}
|
12
12
|
# - +BeforeDate+ (timestamp): filters transactions with CreationDate _before_ this date
|
13
13
|
# - +AfterDate+ (timestamp): filters transactions with CreationDate _after_ this date
|
14
|
+
# See https://docs.mangopay.com/api-references/sort-lists/
|
14
15
|
def fetch(wallet_id, filters={})
|
15
16
|
MangoPay.request(:get, url(wallet_id), {}, filters)
|
16
17
|
end
|
data/lib/mangopay/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
describe MangoPay::BankAccount do
|
2
2
|
include_context 'bank_accounts'
|
3
|
-
|
3
|
+
|
4
4
|
def create(params)
|
5
5
|
user = new_natural_user
|
6
6
|
params_fixed = { OwnerName: 'John', OwnerAddress: user['Address'] }.merge(params)
|
@@ -82,4 +82,16 @@ describe MangoPay::BankAccount do
|
|
82
82
|
expect(single['Id']).to eq(new_bank_account['Id'])
|
83
83
|
end
|
84
84
|
end
|
85
|
+
|
86
|
+
describe 'UPDATE' do
|
87
|
+
it 'disactivates a bank account' do
|
88
|
+
usr_id = new_bank_account['UserId']
|
89
|
+
acc_id = new_bank_account['Id']
|
90
|
+
|
91
|
+
changed = MangoPay::BankAccount.update(usr_id, acc_id, {Active: false})
|
92
|
+
fetched = MangoPay::BankAccount.fetch(usr_id, acc_id)
|
93
|
+
expect(changed['Active']).to eq(false)
|
94
|
+
expect(fetched['Active']).to eq(false)
|
95
|
+
end
|
96
|
+
end
|
85
97
|
end
|
@@ -1,30 +1,4 @@
|
|
1
1
|
describe MangoPay::Client do
|
2
|
-
include_context 'clients'
|
3
|
-
|
4
|
-
describe 'CREATE' do
|
5
|
-
it 'creates a new client' do
|
6
|
-
expect(new_client['ClientId']).to eq(client_id)
|
7
|
-
expect(new_client['Email']).not_to be_nil
|
8
|
-
expect(new_client['Passphrase']).not_to be_nil
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'refuses the client id' do
|
12
|
-
expect { wrong_client['errors'] }.to raise_error { |err|
|
13
|
-
expect(err).to be_a MangoPay::ResponseError
|
14
|
-
expect(err.type).to eq 'param_error'
|
15
|
-
}
|
16
|
-
end
|
17
|
-
|
18
|
-
it "ClientId_already_exist" do
|
19
|
-
expect {
|
20
|
-
MangoPay::Client.create({
|
21
|
-
'ClientId' => new_client['ClientId'],
|
22
|
-
'Name' => 'What a nice name',
|
23
|
-
'Email' => 'clientemail@email.com'
|
24
|
-
})
|
25
|
-
}.to raise_error MangoPay::ResponseError
|
26
|
-
end
|
27
|
-
end
|
28
2
|
|
29
3
|
describe 'FETCH' do
|
30
4
|
it 'fetches the current client details' do
|
@@ -71,4 +45,66 @@ describe MangoPay::Client do
|
|
71
45
|
end
|
72
46
|
end
|
73
47
|
|
48
|
+
describe 'fetch_wallets' do
|
49
|
+
it 'fetches all client wallets' do
|
50
|
+
wlts = MangoPay::Client.fetch_wallets
|
51
|
+
expect(wlts).to be_kind_of(Array)
|
52
|
+
expect(wlts).not_to be_empty
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'fetches all client fees wallets' do
|
56
|
+
wlts = MangoPay::Client.fetch_wallets('fees')
|
57
|
+
expect(wlts).to be_kind_of(Array)
|
58
|
+
expect(wlts).not_to be_empty
|
59
|
+
expect((wlts.map {|m| m['FundsType']}).uniq).to eq(['FEES'])
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'fetches all client credit wallets' do
|
63
|
+
wlts = MangoPay::Client.fetch_wallets('credit')
|
64
|
+
expect(wlts).to be_kind_of(Array)
|
65
|
+
expect(wlts).not_to be_empty
|
66
|
+
expect((wlts.map {|m| m['FundsType']}).uniq).to eq(['CREDIT'])
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe 'fetch_wallet' do
|
71
|
+
it 'fetches one of client wallets by funds type (fees) and currency' do
|
72
|
+
wlt = MangoPay::Client.fetch_wallet('fees', 'EUR')
|
73
|
+
expect(wlt).to be_kind_of(Hash)
|
74
|
+
expect(wlt['FundsType']).to eq('FEES')
|
75
|
+
expect(wlt['Currency']).to eq('EUR')
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'fetches one of client wallets by funds type (credit) and currency' do
|
79
|
+
wlt = MangoPay::Client.fetch_wallet('credit', 'EUR')
|
80
|
+
expect(wlt).to be_kind_of(Hash)
|
81
|
+
expect(wlt['FundsType']).to eq('CREDIT')
|
82
|
+
expect(wlt['Currency']).to eq('EUR')
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
describe 'fetch_wallets_transactions' do
|
87
|
+
it 'fetches transactions for all client wallets' do
|
88
|
+
trns = MangoPay::Client.fetch_wallets_transactions
|
89
|
+
expect(trns).to be_kind_of(Array)
|
90
|
+
expect(trns).not_to be_empty
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
describe 'fetch_wallets_transactions' do
|
95
|
+
it 'fetches transactions of one of client wallets by funds type (fees) and currency' do
|
96
|
+
trns = MangoPay::Client.fetch_wallet_transactions('fees', 'EUR')
|
97
|
+
expect(trns).to be_kind_of(Array)
|
98
|
+
expect(trns).not_to be_empty
|
99
|
+
expect((trns.map {|m| m['DebitedWalletId']}).uniq).to eq(['FEES_EUR'])
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'fetches transactions of one of client wallets by funds type (credit) and currency' do
|
103
|
+
trns = MangoPay::Client.fetch_wallet_transactions('credit', 'EUR')
|
104
|
+
expect(trns).to be_kind_of(Array)
|
105
|
+
expect(trns).not_to be_empty
|
106
|
+
expect((trns.map {|m| m['DebitedWalletId']}).uniq).to eq(['CREDIT_EUR'])
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
74
110
|
end
|
@@ -1,5 +1,10 @@
|
|
1
1
|
describe MangoPay::Dispute do
|
2
2
|
|
3
|
+
=begin
|
4
|
+
comment out all Dispute related unit tests please
|
5
|
+
these require manual actions on our side
|
6
|
+
and it's infact not suitable like that
|
7
|
+
|
3
8
|
# IMPORTANT NOTE!
|
4
9
|
#
|
5
10
|
# Due to the fact the disputes CANNOT be created on user's side,
|
@@ -251,4 +256,7 @@ describe MangoPay::Dispute do
|
|
251
256
|
expect(changed_dispute['Status']).to eq('CLOSED')
|
252
257
|
end
|
253
258
|
end
|
259
|
+
|
260
|
+
=end
|
261
|
+
|
254
262
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
describe MangoPay::Report do
|
2
|
+
|
3
|
+
def create
|
4
|
+
params = {
|
5
|
+
Tag: 'custom meta',
|
6
|
+
CallbackURL: 'http://www.my-site.com/callbackURL/',
|
7
|
+
DownloadFormat: 'CSV',
|
8
|
+
Sort: 'CreationDate:DESC',
|
9
|
+
Preview: false,
|
10
|
+
Filters: {},
|
11
|
+
Columns: [ 'Id', 'CreationDate' ]
|
12
|
+
}
|
13
|
+
MangoPay::Report.create(params)
|
14
|
+
end
|
15
|
+
|
16
|
+
describe 'CREATE' do
|
17
|
+
it 'creates a report' do
|
18
|
+
created = create
|
19
|
+
expect(created['Id']).to_not be_nil
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe 'FETCH' do
|
24
|
+
|
25
|
+
it 'fetches a report' do
|
26
|
+
created = create
|
27
|
+
fetched = MangoPay::Report.fetch(created['Id'])
|
28
|
+
expect(fetched['Id']).to eq(created['Id'])
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'fetches all the reports' do
|
32
|
+
reports = MangoPay::Report.fetch()
|
33
|
+
expect(reports).to be_kind_of(Array)
|
34
|
+
expect(reports).not_to be_empty
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
@@ -1,34 +1,3 @@
|
|
1
|
-
###############################################
|
2
|
-
shared_context 'clients' do
|
3
|
-
###############################################
|
4
|
-
|
5
|
-
require 'securerandom'
|
6
|
-
|
7
|
-
let(:client_id) {
|
8
|
-
SecureRandom.hex(10)
|
9
|
-
}
|
10
|
-
|
11
|
-
let(:wrong_client_id) {
|
12
|
-
SecureRandom.hex(20)
|
13
|
-
}
|
14
|
-
|
15
|
-
let(:wrong_client) {
|
16
|
-
MangoPay::Client.create({
|
17
|
-
'ClientID' => wrong_client_id,
|
18
|
-
'Name' => 'What a nice name',
|
19
|
-
'Email' => 'clientemail@email.com'
|
20
|
-
})
|
21
|
-
}
|
22
|
-
|
23
|
-
let(:new_client) {
|
24
|
-
MangoPay::Client.create({
|
25
|
-
'ClientID' => client_id,
|
26
|
-
'Name' => 'What a nice name',
|
27
|
-
'Email' => 'clientemail@email.com'
|
28
|
-
})
|
29
|
-
}
|
30
|
-
end
|
31
|
-
|
32
1
|
###############################################
|
33
2
|
shared_context 'users' do
|
34
3
|
###############################################
|
data/spec/spec_helper.rb
CHANGED
@@ -23,6 +23,7 @@ reset_mangopay_configuration
|
|
23
23
|
|
24
24
|
################################################################################
|
25
25
|
# uncomment it for logging all http calls in tests
|
26
|
+
# require 'pp'
|
26
27
|
# require 'http_logger'
|
27
28
|
# require 'logger'
|
28
29
|
# HttpLogger.logger = Logger.new(STDOUT)
|
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.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geoffroy Lorieux
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-08-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- lib/mangopay/pay_out.rb
|
92
92
|
- lib/mangopay/pre_authorization.rb
|
93
93
|
- lib/mangopay/refund.rb
|
94
|
+
- lib/mangopay/report.rb
|
94
95
|
- lib/mangopay/resource.rb
|
95
96
|
- lib/mangopay/temp.rb
|
96
97
|
- lib/mangopay/transaction.rb
|
@@ -123,6 +124,7 @@ files:
|
|
123
124
|
- spec/mangopay/payout_bankwire_spec.rb
|
124
125
|
- spec/mangopay/preauthorization_spec.rb
|
125
126
|
- spec/mangopay/refund_spec.rb
|
127
|
+
- spec/mangopay/report_spec.rb
|
126
128
|
- spec/mangopay/shared_resources.rb
|
127
129
|
- spec/mangopay/temp_paymentcard_spec.rb
|
128
130
|
- spec/mangopay/transaction_spec.rb
|
@@ -151,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
151
153
|
version: '0'
|
152
154
|
requirements: []
|
153
155
|
rubyforge_project:
|
154
|
-
rubygems_version: 2.
|
156
|
+
rubygems_version: 2.2.3
|
155
157
|
signing_key:
|
156
158
|
specification_version: 4
|
157
159
|
summary: Ruby bindings for the version 2 of the MANGOPAY API
|
@@ -180,6 +182,7 @@ test_files:
|
|
180
182
|
- spec/mangopay/payout_bankwire_spec.rb
|
181
183
|
- spec/mangopay/preauthorization_spec.rb
|
182
184
|
- spec/mangopay/refund_spec.rb
|
185
|
+
- spec/mangopay/report_spec.rb
|
183
186
|
- spec/mangopay/shared_resources.rb
|
184
187
|
- spec/mangopay/temp_paymentcard_spec.rb
|
185
188
|
- spec/mangopay/transaction_spec.rb
|