mangopay 3.0.29 → 3.0.30

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: bc119d2e97e5a65875c73429965f2d5ec15f87c2
4
- data.tar.gz: 684a90dca09a017de713dd477fbf5d6b34ec5db7
2
+ SHA256:
3
+ metadata.gz: 6c038a492f0096820e24da22def17585dc1b5a13aa58eca6d18820bba16607bb
4
+ data.tar.gz: db6237ec1d2c88f544e975d6edc0b13944a5fdb202089e08ce2984a56176f966
5
5
  SHA512:
6
- metadata.gz: 46e62de7beaa7c86049dd37effb36022e5e74f1c24749d29a7fb7d79dd267745e1eb41639bf07a8bad5284b5d3b6cf486004bf2fe0b89bf4c6f6d4b8df890029
7
- data.tar.gz: 23da69054b9fcd7fb61f1a73d1aebbd4d4ca0df9f2f94c5de0cc736c4afa9bf70266343e889a0565696ab75588701cf35ff7aee2ae80eac8aff731c1d2390462
6
+ metadata.gz: 63fe20ad687cfbb42d4e31f7d7cf0c65b66e87e82487489d0e4bfd45486e30e99360a6c0396dc38ec44f1a7a1652b5bdb8c423b88b586e30c556efb824c5d637
7
+ data.tar.gz: c9f7cbe0843ccaf8153b2741d5da3587a3d6bf83f25884f342c1a60233b55101b0ed840c67214ceb3e7a48a4b31ee5bd08f455cf2317031aba63efa6a7c8887f
@@ -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'
@@ -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
@@ -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
@@ -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
@@ -46,7 +46,6 @@ module MangoPay
46
46
  def emoney(user_id, filters={})
47
47
  MangoPay.request(:get, url(user_id) + '/emoney', {}, filters)
48
48
  end
49
-
50
49
  end
51
50
  end
52
51
  end
@@ -1,3 +1,3 @@
1
1
  module MangoPay
2
- VERSION = '3.0.29'
2
+ VERSION = '3.0.30'
3
3
  end
@@ -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']) &&
@@ -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
@@ -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.29
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-08-07 00:00:00.000000000 Z
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.6.11
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