mangopay 3.0.21 → 3.0.23
Sign up to get free protection for your applications and to get access to all the features.
- 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
|