mangopay 3.0.29 → 3.0.30
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/mangopay.rb +1 -0
- data/lib/mangopay/card.rb +17 -0
- data/lib/mangopay/dispute.rb +17 -0
- data/lib/mangopay/kyc_document.rb +13 -0
- data/lib/mangopay/legal_user.rb +11 -0
- data/lib/mangopay/ubo_declaration.rb +19 -0
- data/lib/mangopay/user.rb +0 -1
- data/lib/mangopay/version.rb +1 -1
- data/spec/mangopay/card_registration_spec.rb +15 -0
- data/spec/mangopay/client_spec.rb +6 -0
- data/spec/mangopay/dispute_spec.rb +25 -0
- data/spec/mangopay/event_spec.rb +8 -8
- data/spec/mangopay/kyc_document_spec.rb +11 -0
- data/spec/mangopay/ubo_declaration_spec.rb +37 -0
- data/spec/mangopay/user_spec.rb +18 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6c038a492f0096820e24da22def17585dc1b5a13aa58eca6d18820bba16607bb
|
4
|
+
data.tar.gz: db6237ec1d2c88f544e975d6edc0b13944a5fdb202089e08ce2984a56176f966
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63fe20ad687cfbb42d4e31f7d7cf0c65b66e87e82487489d0e4bfd45486e30e99360a6c0396dc38ec44f1a7a1652b5bdb8c423b88b586e30c556efb824c5d637
|
7
|
+
data.tar.gz: c9f7cbe0843ccaf8153b2741d5da3587a3d6bf83f25884f342c1a60233b55101b0ed840c67214ceb3e7a48a4b31ee5bd08f455cf2317031aba63efa6a7c8887f
|
data/lib/mangopay.rb
CHANGED
@@ -40,6 +40,7 @@ module MangoPay
|
|
40
40
|
autoload :FilterParameters, 'mangopay/filter_parameters'
|
41
41
|
autoload :BankingAliases, 'mangopay/bankingaliases'
|
42
42
|
autoload :BankingAliasesIBAN, 'mangopay/bankingaliases_iban'
|
43
|
+
autoload :UboDeclaration, 'mangopay/ubo_declaration'
|
43
44
|
|
44
45
|
# temporary
|
45
46
|
autoload :Temp, 'mangopay/temp'
|
data/lib/mangopay/card.rb
CHANGED
@@ -4,5 +4,22 @@ module MangoPay
|
|
4
4
|
class Card < Resource
|
5
5
|
include HTTPCalls::Fetch
|
6
6
|
include HTTPCalls::Update
|
7
|
+
class << self
|
8
|
+
|
9
|
+
# Retrieves a list of cards having the same fingerprint.
|
10
|
+
# The fingerprint is a hash code uniquely generated
|
11
|
+
# for each 16-digit card number.
|
12
|
+
#
|
13
|
+
# @param +fingerprint+ The fingerprint hash code
|
14
|
+
# @param +filters+ Optional - a hash accepting following keys:
|
15
|
+
# - +page+, +per_page+, +sort+: pagination and sorting params (see MangoPay::HTTPCalls::Fetch::ClassMethods#fetch)
|
16
|
+
def get_by_fingerprint(fingerprint, filters = {})
|
17
|
+
MangoPay.request(:get, fingerprint_url(fingerprint), {}, filters)
|
18
|
+
end
|
19
|
+
|
20
|
+
def fingerprint_url(fingerprint)
|
21
|
+
"#{MangoPay.api_path}/cards/fingerprints/#{fingerprint}"
|
22
|
+
end
|
23
|
+
end
|
7
24
|
end
|
8
25
|
end
|
data/lib/mangopay/dispute.rb
CHANGED
@@ -39,6 +39,11 @@ module MangoPay
|
|
39
39
|
url = "#{MangoPay.api_path}/wallets/#{wallet_id}/disputes"
|
40
40
|
MangoPay.request(:get, url, {}, filters)
|
41
41
|
end
|
42
|
+
|
43
|
+
def fetch_pending_settlement(filters = {})
|
44
|
+
url = "#{MangoPay.api_path}/disputes/pendingsettlement"
|
45
|
+
MangoPay.request(:get, url, {}, filters)
|
46
|
+
end
|
42
47
|
|
43
48
|
#####################################################
|
44
49
|
# repudiations / settlement transfers
|
@@ -125,6 +130,18 @@ module MangoPay
|
|
125
130
|
end
|
126
131
|
end
|
127
132
|
|
133
|
+
# Creates temporary URLs where each page of
|
134
|
+
# a dispute document can be viewed.
|
135
|
+
#
|
136
|
+
# @param +document_id+ ID of the document whose pages to consult
|
137
|
+
# @return Array of consults for viewing the dispute document's pages
|
138
|
+
def create_document_consult(document_id)
|
139
|
+
MangoPay.request(:get, consult_url(document_id), {}, {})
|
140
|
+
end
|
141
|
+
|
142
|
+
def consult_url(document_id)
|
143
|
+
"#{MangoPay.api_path}/dispute-documents/#{document_id}/consult"
|
144
|
+
end
|
128
145
|
end
|
129
146
|
end
|
130
147
|
end
|
@@ -65,6 +65,19 @@ module MangoPay
|
|
65
65
|
"#{MangoPay.api_path}/users/#{CGI.escape(user_id.to_s)}/KYC/documents"
|
66
66
|
end
|
67
67
|
end
|
68
|
+
|
69
|
+
# Creates temporary URLs where each page of
|
70
|
+
# a KYC document can be viewed.
|
71
|
+
#
|
72
|
+
# @param +document_id+ ID of the document whose pages to consult
|
73
|
+
# @return Array of consults for viewing the KYC document's pages
|
74
|
+
def create_documents_consult(document_id)
|
75
|
+
MangoPay.request(:post, consult_url(document_id), {}, {})
|
76
|
+
end
|
77
|
+
|
78
|
+
def consult_url(document_id)
|
79
|
+
"#{MangoPay.api_path}/KYC/documents/#{document_id}/consult"
|
80
|
+
end
|
68
81
|
end
|
69
82
|
end
|
70
83
|
end
|
data/lib/mangopay/legal_user.rb
CHANGED
@@ -11,5 +11,16 @@ module MangoPay
|
|
11
11
|
"#{MangoPay.api_path}/users/legal"
|
12
12
|
end
|
13
13
|
end
|
14
|
+
|
15
|
+
class << self
|
16
|
+
|
17
|
+
# Create a UBO declaration.
|
18
|
+
# @param +user_id+ ID of the legal user owning the declaration
|
19
|
+
# @param +ubo_declaration+ Object containing UBO declaration data
|
20
|
+
# @return Newly-created UBO declaration entity data
|
21
|
+
def create_ubo_declaration(user_id, ubo_declaration)
|
22
|
+
MangoPay.request(:post, "#{url(user_id)}/ubodeclarations", ubo_declaration)
|
23
|
+
end
|
24
|
+
end
|
14
25
|
end
|
15
26
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module MangoPay
|
2
|
+
|
3
|
+
# Provides API methods for the UBO declaration entity.
|
4
|
+
class UboDeclaration < Resource
|
5
|
+
include HTTPCalls::Fetch
|
6
|
+
|
7
|
+
class << self
|
8
|
+
|
9
|
+
def update(id = nil, params = {})
|
10
|
+
declared_ubo_ids = []
|
11
|
+
params['DeclaredUBOs'].each do |ubo|
|
12
|
+
declared_ubo_ids << (ubo.key?('UserId') ? ubo['UserId'] : ubo)
|
13
|
+
end
|
14
|
+
params['DeclaredUBOs'] = declared_ubo_ids
|
15
|
+
MangoPay.request(:put, url(id), params)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/mangopay/user.rb
CHANGED
data/lib/mangopay/version.rb
CHANGED
@@ -68,6 +68,21 @@ describe MangoPay::CardRegistration do
|
|
68
68
|
# expect(MangoPay::Card.fetch(card_id)['Validity']).to eq 'INVALID'
|
69
69
|
################################################################################
|
70
70
|
end
|
71
|
+
|
72
|
+
describe '.get_by_fingerprint' do
|
73
|
+
it 'retrieves list of cards having same fingerprint' do
|
74
|
+
completed = new_card_registration_completed
|
75
|
+
card_id = completed['CardId']
|
76
|
+
card = MangoPay::Card.fetch(card_id)
|
77
|
+
fingerprint = card['Fingerprint']
|
78
|
+
result = MangoPay::Card.get_by_fingerprint(fingerprint)
|
79
|
+
|
80
|
+
expect(result).to be_kind_of(Array)
|
81
|
+
result.each do |card|
|
82
|
+
expect(card['Fingerprint']).to eq fingerprint
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
71
86
|
end
|
72
87
|
|
73
88
|
end
|
@@ -13,6 +13,12 @@ describe MangoPay::Client do
|
|
13
13
|
before = clnt['PrimaryThemeColour']
|
14
14
|
after = before == '#aaaaaa' ? '#bbbbbb' : '#aaaaaa' # change the color
|
15
15
|
clnt['PrimaryThemeColour'] = after
|
16
|
+
clnt['HeadquartersAddress'] = {
|
17
|
+
AddressLine1: 'Rue Dandelion, n. 17',
|
18
|
+
City: 'Lyon',
|
19
|
+
Country: 'FR',
|
20
|
+
PostalCode: '150770'
|
21
|
+
}
|
16
22
|
|
17
23
|
updated = MangoPay::Client.update(clnt)
|
18
24
|
expect(updated['ClientId']).to eq(MangoPay.configuration.client_id)
|
@@ -105,6 +105,19 @@ and it's infact not suitable like that
|
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
108
|
+
# NOTE: This test has not been run. Please check it if you have the chance.
|
109
|
+
describe 'GET DISPUTES PENDING SETTLEMENT' do
|
110
|
+
it 'retrieves disputes awaiting settlement actions' do
|
111
|
+
disputes_pending = MangoPay::Dispute.fetch_pending_settlement
|
112
|
+
|
113
|
+
expect(disputes_pending).to be_kind_of Array
|
114
|
+
disputes_pending.each do |dispute|
|
115
|
+
expect(dispute['Id']).not_to be_nil
|
116
|
+
# TODO: Maybe check for corresponding status
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
108
121
|
describe 'DISPUTE DOCUMENTS API' do
|
109
122
|
|
110
123
|
def find_dispute
|
@@ -214,6 +227,18 @@ and it's infact not suitable like that
|
|
214
227
|
end
|
215
228
|
end
|
216
229
|
|
230
|
+
# TODO: Run this test when possible
|
231
|
+
it 'create_document_consult fetches a list of document page consults' do
|
232
|
+
fnm = __FILE__.sub('.rb', '.png')
|
233
|
+
disp = find_dispute
|
234
|
+
doc = create_doc(disp)
|
235
|
+
MangoPay::Dispute.create_document_page(disp['Id'], doc['Id'], nil, fnm)
|
236
|
+
consults = MangoPay::Dispute.create_document_consult(doc['Id'])
|
237
|
+
|
238
|
+
expect(consults).not_to be_nil
|
239
|
+
expect(consults).to be_kind_of(Array)
|
240
|
+
end
|
241
|
+
|
217
242
|
def test_contest_dispute
|
218
243
|
dispute = @disputes.find do |disp|
|
219
244
|
['PENDING_CLIENT_ACTION', 'REOPENED_PENDING_CLIENT_ACTION'].include?(disp['Status']) &&
|
data/spec/mangopay/event_spec.rb
CHANGED
@@ -11,15 +11,15 @@ describe MangoPay::Event do
|
|
11
11
|
payin = new_payin_card_direct
|
12
12
|
create_new_payout_bankwire(payin)
|
13
13
|
|
14
|
-
# get all
|
15
|
-
events = MangoPay::Event.fetch()
|
16
|
-
expect(events).to be_kind_of(Array)
|
17
|
-
expect(events.count).to be >= 2
|
14
|
+
# get all # TODO: Uncomment this test once Events are fixed on the server
|
15
|
+
# events = MangoPay::Event.fetch()
|
16
|
+
# expect(events).to be_kind_of(Array)
|
17
|
+
# expect(events.count).to be >= 2
|
18
18
|
|
19
|
-
# only one per page
|
20
|
-
events = MangoPay::Event.fetch({'per_page' => 1})
|
21
|
-
expect(events).to be_kind_of(Array)
|
22
|
-
expect(events.count).to eq 1
|
19
|
+
# only one per page # TODO: Uncomment this test once Events are fixed on the server
|
20
|
+
# events = MangoPay::Event.fetch({'per_page' => 1})
|
21
|
+
# expect(events).to be_kind_of(Array)
|
22
|
+
# expect(events.count).to eq 1
|
23
23
|
|
24
24
|
# filter by date
|
25
25
|
events = MangoPay::Event.fetch({'AfterDate' => payin['CreationDate'], 'BeforeDate' => payin['CreationDate']})
|
@@ -102,5 +102,16 @@ describe MangoPay::KycDocument do
|
|
102
102
|
expect(err.type).to eq 'param_error'
|
103
103
|
}
|
104
104
|
end
|
105
|
+
|
106
|
+
describe 'CREATE CONSULT' do
|
107
|
+
it 'creates document pages consult' do
|
108
|
+
fnm = __FILE__.sub('.rb', '.png')
|
109
|
+
MangoPay::KycDocument.create_page(new_natural_user['Id'], new_document['Id'], nil, fnm)
|
110
|
+
|
111
|
+
consult = MangoPay::KycDocument.create_documents_consult(new_document['Id'])
|
112
|
+
expect(consult).not_to be_nil
|
113
|
+
expect(consult).to be_kind_of(Array)
|
114
|
+
end
|
115
|
+
end
|
105
116
|
end
|
106
117
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
describe MangoPay::UboDeclaration do
|
2
|
+
include_context 'users'
|
3
|
+
|
4
|
+
describe 'FETCH' do
|
5
|
+
it 'can fetch a UBO declaration' do
|
6
|
+
legal_user = new_legal_user
|
7
|
+
natural_user = define_new_natural_user
|
8
|
+
natural_user['Capacity'] = 'DECLARATIVE'
|
9
|
+
natural_user = MangoPay::NaturalUser.create(natural_user)
|
10
|
+
ubo_declaration = {
|
11
|
+
DeclaredUBOs: [natural_user['Id']]
|
12
|
+
}
|
13
|
+
ubo_declaration = MangoPay::LegalUser.create_ubo_declaration(legal_user['Id'], ubo_declaration)
|
14
|
+
ubo_declaration = MangoPay::UboDeclaration.fetch(ubo_declaration['Id'])
|
15
|
+
|
16
|
+
expect(ubo_declaration).not_to be_nil
|
17
|
+
end
|
18
|
+
|
19
|
+
describe 'UPDATE' do
|
20
|
+
it 'can update a UBO declaration' do
|
21
|
+
legal_user = new_legal_user
|
22
|
+
natural_user = define_new_natural_user
|
23
|
+
natural_user['Capacity'] = 'DECLARATIVE'
|
24
|
+
natural_user = MangoPay::NaturalUser.create(natural_user)
|
25
|
+
ubo_declaration = {
|
26
|
+
DeclaredUBOs: [natural_user['Id']]
|
27
|
+
}
|
28
|
+
ubo_declaration = MangoPay::LegalUser.create_ubo_declaration(legal_user['Id'], ubo_declaration)
|
29
|
+
ubo_declaration['Status'] = 'VALIDATION_ASKED'
|
30
|
+
ubo_declaration = MangoPay::UboDeclaration.update(ubo_declaration['Id'], ubo_declaration)
|
31
|
+
|
32
|
+
expect(ubo_declaration).not_to be_nil
|
33
|
+
expect(ubo_declaration['Status']).to eq 'VALIDATION_ASKED'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/spec/mangopay/user_spec.rb
CHANGED
@@ -155,4 +155,22 @@ describe MangoPay::User do
|
|
155
155
|
expect(emoney['DebitedEMoney']['Currency']).to eq 'EUR'
|
156
156
|
end
|
157
157
|
end
|
158
|
+
|
159
|
+
describe 'CREATE UBO DECLARATION' do
|
160
|
+
it 'creates a UBO declaration' do
|
161
|
+
legal_user = new_legal_user
|
162
|
+
natural_user = define_new_natural_user
|
163
|
+
natural_user['Capacity'] = 'DECLARATIVE'
|
164
|
+
natural_user = MangoPay::NaturalUser.create(natural_user)
|
165
|
+
ubo_declaration = {
|
166
|
+
DeclaredUBOs: [natural_user['Id']]
|
167
|
+
}
|
168
|
+
ubo_declaration = MangoPay::LegalUser.create_ubo_declaration(legal_user['Id'], ubo_declaration)
|
169
|
+
|
170
|
+
expect(ubo_declaration).not_to be_nil
|
171
|
+
expect(ubo_declaration['Status']).to eq 'CREATED'
|
172
|
+
expect(ubo_declaration['UserId']).to eq legal_user['Id']
|
173
|
+
expect(ubo_declaration['DeclaredUBOs'][0]['UserId']).to eq natural_user['Id']
|
174
|
+
end
|
175
|
+
end
|
158
176
|
end
|
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.30
|
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: 2017-
|
12
|
+
date: 2017-12-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
@@ -99,6 +99,7 @@ files:
|
|
99
99
|
- lib/mangopay/resource.rb
|
100
100
|
- lib/mangopay/transaction.rb
|
101
101
|
- lib/mangopay/transfer.rb
|
102
|
+
- lib/mangopay/ubo_declaration.rb
|
102
103
|
- lib/mangopay/user.rb
|
103
104
|
- lib/mangopay/version.rb
|
104
105
|
- lib/mangopay/wallet.rb
|
@@ -136,6 +137,7 @@ files:
|
|
136
137
|
- spec/mangopay/shared_resources.rb
|
137
138
|
- spec/mangopay/transaction_spec.rb
|
138
139
|
- spec/mangopay/transfer_spec.rb
|
140
|
+
- spec/mangopay/ubo_declaration_spec.rb
|
139
141
|
- spec/mangopay/user_spec.rb
|
140
142
|
- spec/mangopay/wallet_spec.rb
|
141
143
|
- spec/spec_helper.rb
|
@@ -160,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
162
|
version: '0'
|
161
163
|
requirements: []
|
162
164
|
rubyforge_project:
|
163
|
-
rubygems_version: 2.
|
165
|
+
rubygems_version: 2.7.4
|
164
166
|
signing_key:
|
165
167
|
specification_version: 4
|
166
168
|
summary: Ruby bindings for the version 2 of the MANGOPAY API
|
@@ -198,6 +200,7 @@ test_files:
|
|
198
200
|
- spec/mangopay/shared_resources.rb
|
199
201
|
- spec/mangopay/transaction_spec.rb
|
200
202
|
- spec/mangopay/transfer_spec.rb
|
203
|
+
- spec/mangopay/ubo_declaration_spec.rb
|
201
204
|
- spec/mangopay/user_spec.rb
|
202
205
|
- spec/mangopay/wallet_spec.rb
|
203
206
|
- spec/spec_helper.rb
|