mangopay 3.0.25.pre.alpha.pre.20 → 3.0.25
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/.gitignore +28 -28
- data/.rspec +2 -2
- data/.travis.yml +4 -13
- data/Gemfile +2 -2
- data/LICENSE +20 -20
- data/README.md +126 -126
- data/bin/mangopay +9 -9
- data/lib/generators/mangopay/install_generator.rb +60 -60
- data/lib/generators/templates/mangopay.rb.erb +5 -5
- data/lib/mangopay.rb +225 -225
- data/lib/mangopay/authorization_token.rb +88 -88
- data/lib/mangopay/bank_account.rb +38 -38
- data/lib/mangopay/card.rb +8 -8
- data/lib/mangopay/card_registration.rb +9 -9
- data/lib/mangopay/client.rb +74 -74
- data/lib/mangopay/dispute.rb +130 -130
- data/lib/mangopay/errors.rb +61 -61
- data/lib/mangopay/event.rb +18 -18
- data/lib/mangopay/filter_parameters.rb +46 -46
- data/lib/mangopay/hook.rb +9 -9
- data/lib/mangopay/http_calls.rb +85 -85
- data/lib/mangopay/json.rb +14 -14
- data/lib/mangopay/kyc_document.rb +70 -70
- data/lib/mangopay/legal_user.rb +15 -15
- data/lib/mangopay/mandate.rb +32 -32
- data/lib/mangopay/natural_user.rb +14 -14
- data/lib/mangopay/pay_in.rb +85 -85
- data/lib/mangopay/pay_out.rb +14 -14
- data/lib/mangopay/pre_authorization.rb +13 -13
- data/lib/mangopay/refund.rb +7 -7
- data/lib/mangopay/report.rb +17 -17
- data/lib/mangopay/resource.rb +21 -21
- data/lib/mangopay/temp.rb +74 -74
- data/lib/mangopay/transaction.rb +24 -24
- data/lib/mangopay/transfer.rb +9 -9
- data/lib/mangopay/user.rb +43 -43
- data/lib/mangopay/version.rb +3 -3
- data/lib/mangopay/wallet.rb +17 -17
- data/mangopay.gemspec +30 -31
- data/spec/mangopay/authorization_token_spec.rb +70 -70
- data/spec/mangopay/bank_account_spec.rb +97 -97
- data/spec/mangopay/card_registration_spec.rb +73 -73
- data/spec/mangopay/client_spec.rb +110 -110
- data/spec/mangopay/configuration_spec.rb +95 -95
- data/spec/mangopay/dispute_spec.rb +262 -262
- data/spec/mangopay/event_spec.rb +31 -31
- data/spec/mangopay/fetch_filters_spec.rb +63 -63
- data/spec/mangopay/hook_spec.rb +37 -37
- data/spec/mangopay/idempotency_spec.rb +41 -41
- data/spec/mangopay/kyc_document_spec.rb +103 -103
- data/spec/mangopay/log_requests_filter_spec.rb +25 -25
- data/spec/mangopay/mandate_spec.rb +92 -92
- data/spec/mangopay/payin_bankwire_direct_spec.rb +74 -74
- data/spec/mangopay/payin_card_direct_spec.rb +68 -68
- data/spec/mangopay/payin_card_web_spec.rb +38 -38
- data/spec/mangopay/payin_directdebit_direct_spec.rb +37 -37
- data/spec/mangopay/payin_directdebit_web_spec.rb +38 -38
- data/spec/mangopay/payin_paypal_web_spec.rb +38 -38
- data/spec/mangopay/payin_preauthorized_direct_spec.rb +68 -68
- data/spec/mangopay/payout_bankwire_spec.rb +54 -54
- data/spec/mangopay/preauthorization_spec.rb +42 -42
- data/spec/mangopay/refund_spec.rb +21 -21
- data/spec/mangopay/report_spec.rb +39 -39
- data/spec/mangopay/shared_resources.rb +381 -381
- data/spec/mangopay/temp_paymentcard_spec.rb +31 -31
- data/spec/mangopay/transaction_spec.rb +54 -54
- data/spec/mangopay/transfer_spec.rb +69 -69
- data/spec/mangopay/user_spec.rb +137 -137
- data/spec/mangopay/wallet_spec.rb +80 -80
- data/spec/spec_helper.rb +31 -31
- metadata +5 -5
data/lib/mangopay/errors.rb
CHANGED
@@ -1,61 +1,61 @@
|
|
1
|
-
module MangoPay
|
2
|
-
|
3
|
-
# Generic error superclass for MangoPay specific errors.
|
4
|
-
# Currently never instantiated directly.
|
5
|
-
# Currently only single subclass used.
|
6
|
-
class Error < StandardError
|
7
|
-
end
|
8
|
-
|
9
|
-
# See http://docs.mangopay.com/api-references/response-codes-rules/
|
10
|
-
# and http://docs.mangopay.com/api-references/error-codes/
|
11
|
-
#
|
12
|
-
# Thrown from any MangoPay API call whenever
|
13
|
-
# it returns response with HTTP code != 200.
|
14
|
-
# Check @details hash for further info.
|
15
|
-
#
|
16
|
-
# Two example exceptions with details:
|
17
|
-
#
|
18
|
-
# #<MangoPay::ResponseError:
|
19
|
-
# One or several required parameters are missing or incorrect. [...]
|
20
|
-
# Email: The Email field is required.>
|
21
|
-
# {"Message"=>"One or several required parameters are missing or incorrect.
|
22
|
-
# An incorrect resource ID also raises this kind of error.",
|
23
|
-
# "Type"=>"param_error",
|
24
|
-
# "Id"=>"66936e92-3f21-4a35-b6cf-f1d17c2fb6e5",
|
25
|
-
# "Date"=>1409047252.0,
|
26
|
-
# "errors"=>{"Email"=>"The Email field is required."},
|
27
|
-
# "Code"=>"400",
|
28
|
-
# "Url"=>"/v2/sdk-unit-tests/users/natural"}
|
29
|
-
#
|
30
|
-
# #<MangoPay::ResponseError: Internal Server Error>
|
31
|
-
# {"Message"=>"Internal Server Error",
|
32
|
-
# "Type"=>"other",
|
33
|
-
# "Id"=>"7bdc5c6f-2000-4cd3-96f3-2a3fcb746f07",
|
34
|
-
# "Date"=>1409047251.0,
|
35
|
-
# "errors"=>nil,
|
36
|
-
# "Code"=>"500",
|
37
|
-
# "Url"=>"/v2/sdk-unit-tests/payins/3380640/refunds"}
|
38
|
-
class ResponseError < Error
|
39
|
-
|
40
|
-
attr_reader :request_url, :code, :details
|
41
|
-
|
42
|
-
def initialize(request_url, code, details)
|
43
|
-
@request_url, @code, @details = request_url, code, details
|
44
|
-
|
45
|
-
@details['Code'] = code
|
46
|
-
@details['Url'] = request_url.request_uri
|
47
|
-
|
48
|
-
super(message) if message
|
49
|
-
end
|
50
|
-
|
51
|
-
def type; @details['Type']; end
|
52
|
-
def errors; @details['errors']; end
|
53
|
-
|
54
|
-
def message;
|
55
|
-
msg = @details['Message']
|
56
|
-
msg += errors.sort.map {|k,v| " #{k}: #{v}"}.join if (errors && errors.is_a?(Hash))
|
57
|
-
msg
|
58
|
-
end
|
59
|
-
|
60
|
-
end
|
61
|
-
end
|
1
|
+
module MangoPay
|
2
|
+
|
3
|
+
# Generic error superclass for MangoPay specific errors.
|
4
|
+
# Currently never instantiated directly.
|
5
|
+
# Currently only single subclass used.
|
6
|
+
class Error < StandardError
|
7
|
+
end
|
8
|
+
|
9
|
+
# See http://docs.mangopay.com/api-references/response-codes-rules/
|
10
|
+
# and http://docs.mangopay.com/api-references/error-codes/
|
11
|
+
#
|
12
|
+
# Thrown from any MangoPay API call whenever
|
13
|
+
# it returns response with HTTP code != 200.
|
14
|
+
# Check @details hash for further info.
|
15
|
+
#
|
16
|
+
# Two example exceptions with details:
|
17
|
+
#
|
18
|
+
# #<MangoPay::ResponseError:
|
19
|
+
# One or several required parameters are missing or incorrect. [...]
|
20
|
+
# Email: The Email field is required.>
|
21
|
+
# {"Message"=>"One or several required parameters are missing or incorrect.
|
22
|
+
# An incorrect resource ID also raises this kind of error.",
|
23
|
+
# "Type"=>"param_error",
|
24
|
+
# "Id"=>"66936e92-3f21-4a35-b6cf-f1d17c2fb6e5",
|
25
|
+
# "Date"=>1409047252.0,
|
26
|
+
# "errors"=>{"Email"=>"The Email field is required."},
|
27
|
+
# "Code"=>"400",
|
28
|
+
# "Url"=>"/v2/sdk-unit-tests/users/natural"}
|
29
|
+
#
|
30
|
+
# #<MangoPay::ResponseError: Internal Server Error>
|
31
|
+
# {"Message"=>"Internal Server Error",
|
32
|
+
# "Type"=>"other",
|
33
|
+
# "Id"=>"7bdc5c6f-2000-4cd3-96f3-2a3fcb746f07",
|
34
|
+
# "Date"=>1409047251.0,
|
35
|
+
# "errors"=>nil,
|
36
|
+
# "Code"=>"500",
|
37
|
+
# "Url"=>"/v2/sdk-unit-tests/payins/3380640/refunds"}
|
38
|
+
class ResponseError < Error
|
39
|
+
|
40
|
+
attr_reader :request_url, :code, :details
|
41
|
+
|
42
|
+
def initialize(request_url, code, details)
|
43
|
+
@request_url, @code, @details = request_url, code, details
|
44
|
+
|
45
|
+
@details['Code'] = code
|
46
|
+
@details['Url'] = request_url.request_uri
|
47
|
+
|
48
|
+
super(message) if message
|
49
|
+
end
|
50
|
+
|
51
|
+
def type; @details['Type']; end
|
52
|
+
def errors; @details['errors']; end
|
53
|
+
|
54
|
+
def message;
|
55
|
+
msg = @details['Message']
|
56
|
+
msg += errors.sort.map {|k,v| " #{k}: #{v}"}.join if (errors && errors.is_a?(Hash))
|
57
|
+
msg
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
data/lib/mangopay/event.rb
CHANGED
@@ -1,18 +1,18 @@
|
|
1
|
-
module MangoPay
|
2
|
-
|
3
|
-
# See http://docs.mangopay.com/api-references/events/
|
4
|
-
class Event < Resource
|
5
|
-
|
6
|
-
# Fetches list of events (PayIns, PayOuts, Transfers).
|
7
|
-
#
|
8
|
-
# Optional +filters+ is a hash accepting following keys:
|
9
|
-
# - +page+, +per_page+, +sort+: pagination and sorting params (see MangoPay::HTTPCalls::Fetch::ClassMethods#fetch)
|
10
|
-
# - +EventType+: {PAYIN_NORMAL_CREATED, PAYIN_NORMAL_SUCCEEDED, PAYIN_NORMAL_FAILED etc...} (see http://docs.mangopay.com/api-references/events/)
|
11
|
-
# - +BeforeDate+ (timestamp): filters events with Date _before_ this date
|
12
|
-
# - +AfterDate+ (timestamp): filters events with Date _after_ this date
|
13
|
-
#
|
14
|
-
def self.fetch(filters={})
|
15
|
-
MangoPay.request(:get, url(), {}, filters)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
1
|
+
module MangoPay
|
2
|
+
|
3
|
+
# See http://docs.mangopay.com/api-references/events/
|
4
|
+
class Event < Resource
|
5
|
+
|
6
|
+
# Fetches list of events (PayIns, PayOuts, Transfers).
|
7
|
+
#
|
8
|
+
# Optional +filters+ is a hash accepting following keys:
|
9
|
+
# - +page+, +per_page+, +sort+: pagination and sorting params (see MangoPay::HTTPCalls::Fetch::ClassMethods#fetch)
|
10
|
+
# - +EventType+: {PAYIN_NORMAL_CREATED, PAYIN_NORMAL_SUCCEEDED, PAYIN_NORMAL_FAILED etc...} (see http://docs.mangopay.com/api-references/events/)
|
11
|
+
# - +BeforeDate+ (timestamp): filters events with Date _before_ this date
|
12
|
+
# - +AfterDate+ (timestamp): filters events with Date _after_ this date
|
13
|
+
#
|
14
|
+
def self.fetch(filters={})
|
15
|
+
MangoPay.request(:get, url(), {}, filters)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,46 +1,46 @@
|
|
1
|
-
module MangoPay
|
2
|
-
module FilterParameters
|
3
|
-
|
4
|
-
def self.request(body)
|
5
|
-
begin
|
6
|
-
body = JSON.load(body)
|
7
|
-
rescue MultiJson::LoadError => e
|
8
|
-
return body
|
9
|
-
end
|
10
|
-
filter_hash(body, req_confidential_params)
|
11
|
-
JSON.dump(body)
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.response(body)
|
15
|
-
return '' if body.to_s.empty?
|
16
|
-
body = JSON.load(body)
|
17
|
-
filter_hash(body, res_confidential_params)
|
18
|
-
JSON.dump(body)
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def self.filter_hash(hash, to_filter)
|
24
|
-
hash.each do |k,v|
|
25
|
-
if v.is_a?(Hash)
|
26
|
-
filter_hash(v, to_filter)
|
27
|
-
else
|
28
|
-
hash[k] = '[FILTERED]' if to_filter.include?(k)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.res_confidential_params
|
34
|
-
@@res_confidential_params ||= [
|
35
|
-
'access_token', 'AccessKey', 'IBAN', 'CardRegistrationURL',
|
36
|
-
'PreregistrationData', 'RedirectURL', 'RegistrationData',
|
37
|
-
'SecureModeRedirectUrl'
|
38
|
-
].freeze
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.req_confidential_params
|
42
|
-
@@req_confidential_params ||= ['File', 'IBAN'].freeze
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
end
|
1
|
+
module MangoPay
|
2
|
+
module FilterParameters
|
3
|
+
|
4
|
+
def self.request(body)
|
5
|
+
begin
|
6
|
+
body = JSON.load(body)
|
7
|
+
rescue MultiJson::LoadError => e
|
8
|
+
return body
|
9
|
+
end
|
10
|
+
filter_hash(body, req_confidential_params)
|
11
|
+
JSON.dump(body)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.response(body)
|
15
|
+
return '' if body.to_s.empty?
|
16
|
+
body = JSON.load(body)
|
17
|
+
filter_hash(body, res_confidential_params)
|
18
|
+
JSON.dump(body)
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def self.filter_hash(hash, to_filter)
|
24
|
+
hash.each do |k,v|
|
25
|
+
if v.is_a?(Hash)
|
26
|
+
filter_hash(v, to_filter)
|
27
|
+
else
|
28
|
+
hash[k] = '[FILTERED]' if to_filter.include?(k)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.res_confidential_params
|
34
|
+
@@res_confidential_params ||= [
|
35
|
+
'access_token', 'AccessKey', 'IBAN', 'CardRegistrationURL',
|
36
|
+
'PreregistrationData', 'RedirectURL', 'RegistrationData',
|
37
|
+
'SecureModeRedirectUrl'
|
38
|
+
].freeze
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.req_confidential_params
|
42
|
+
@@req_confidential_params ||= ['File', 'IBAN'].freeze
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
data/lib/mangopay/hook.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
module MangoPay
|
2
|
-
|
3
|
-
# See http://docs.mangopay.com/api-references/notifications/
|
4
|
-
class Hook < Resource
|
5
|
-
include HTTPCalls::Create
|
6
|
-
include HTTPCalls::Update
|
7
|
-
include HTTPCalls::Fetch
|
8
|
-
end
|
9
|
-
end
|
1
|
+
module MangoPay
|
2
|
+
|
3
|
+
# See http://docs.mangopay.com/api-references/notifications/
|
4
|
+
class Hook < Resource
|
5
|
+
include HTTPCalls::Create
|
6
|
+
include HTTPCalls::Update
|
7
|
+
include HTTPCalls::Fetch
|
8
|
+
end
|
9
|
+
end
|
data/lib/mangopay/http_calls.rb
CHANGED
@@ -1,85 +1,85 @@
|
|
1
|
-
module MangoPay
|
2
|
-
module HTTPCalls
|
3
|
-
module Create
|
4
|
-
module ClassMethods
|
5
|
-
|
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)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.included(base)
|
18
|
-
base.extend(ClassMethods)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
module Update
|
23
|
-
module ClassMethods
|
24
|
-
def update(id = nil, params = {})
|
25
|
-
MangoPay.request(:put, url(id), params)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.included(base)
|
30
|
-
base.extend(ClassMethods)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
module Fetch
|
35
|
-
module ClassMethods
|
36
|
-
|
37
|
-
# - Fetching _single_entity_ by +id+:
|
38
|
-
#
|
39
|
-
# MangoPay::User.fetch("user-id") # => {"FirstName"=>"Mango", "LastName"=>"Pay", ...}
|
40
|
-
#
|
41
|
-
# - or fetching _multiple_entities_ with _optional_ +filters+ hash,
|
42
|
-
# including _pagination_ and _sorting_ params
|
43
|
-
# +page+, +per_page+, +sort+ (see http://docs.mangopay.com/api-references/pagination/):
|
44
|
-
#
|
45
|
-
# MangoPay::User.fetch() # => [{...}, ...]: list of user data hashes (10 per page by default)
|
46
|
-
# MangoPay::User.fetch({'page' => 2, 'per_page' => 3}) # => list of 3 hashes from 2nd page
|
47
|
-
# MangoPay::BankAccount.fetch(user_id, {'sort' => 'CreationDate:desc'}) # => bank accounts by user, sorting by date descending (with default pagination)
|
48
|
-
# MangoPay::BankAccount.fetch(user_id, {'sort' => 'CreationDate:desc', 'page' => 2, 'per_page' => 3}) # both sorting and pagination params provided
|
49
|
-
#
|
50
|
-
# - For paginated queries the +filters+ param will be supplemented by +total_pages+ and +total_items+ info:
|
51
|
-
#
|
52
|
-
# MangoPay::User.fetch(filter = {'page' => 2, 'per_page' => 3})
|
53
|
-
# filter # => {"page"=>2, "per_page"=>3, "total_pages"=>1969, "total_items"=>5905}
|
54
|
-
#
|
55
|
-
def fetch(id_or_filters = nil)
|
56
|
-
id, filters = HTTPCalls::Fetch.parse_id_or_filters(id_or_filters)
|
57
|
-
response = MangoPay.request(:get, url(id), {}, filters)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def self.included(base)
|
62
|
-
base.extend(ClassMethods)
|
63
|
-
end
|
64
|
-
|
65
|
-
def self.parse_id_or_filters(id_or_filters = nil)
|
66
|
-
id_or_filters.is_a?(Hash) ? [nil, id_or_filters] : [id_or_filters, {}]
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
module Refund
|
71
|
-
module ClassMethods
|
72
|
-
|
73
|
-
# See http://docs.mangopay.com/api-references/refund/%E2%80%A2-refund-a-pay-in/
|
74
|
-
# See http://docs.mangopay.com/api-references/refund/%E2%80%A2-refund-a-transfer/
|
75
|
-
def refund(id = nil, params = {}, idempotency_key = nil)
|
76
|
-
MangoPay.request(:post, url(id) + '/refunds', params, {}, idempotency_key)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
def self.included(base)
|
81
|
-
base.extend(ClassMethods)
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
1
|
+
module MangoPay
|
2
|
+
module HTTPCalls
|
3
|
+
module Create
|
4
|
+
module ClassMethods
|
5
|
+
|
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)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.included(base)
|
18
|
+
base.extend(ClassMethods)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
module Update
|
23
|
+
module ClassMethods
|
24
|
+
def update(id = nil, params = {})
|
25
|
+
MangoPay.request(:put, url(id), params)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.included(base)
|
30
|
+
base.extend(ClassMethods)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
module Fetch
|
35
|
+
module ClassMethods
|
36
|
+
|
37
|
+
# - Fetching _single_entity_ by +id+:
|
38
|
+
#
|
39
|
+
# MangoPay::User.fetch("user-id") # => {"FirstName"=>"Mango", "LastName"=>"Pay", ...}
|
40
|
+
#
|
41
|
+
# - or fetching _multiple_entities_ with _optional_ +filters+ hash,
|
42
|
+
# including _pagination_ and _sorting_ params
|
43
|
+
# +page+, +per_page+, +sort+ (see http://docs.mangopay.com/api-references/pagination/):
|
44
|
+
#
|
45
|
+
# MangoPay::User.fetch() # => [{...}, ...]: list of user data hashes (10 per page by default)
|
46
|
+
# MangoPay::User.fetch({'page' => 2, 'per_page' => 3}) # => list of 3 hashes from 2nd page
|
47
|
+
# MangoPay::BankAccount.fetch(user_id, {'sort' => 'CreationDate:desc'}) # => bank accounts by user, sorting by date descending (with default pagination)
|
48
|
+
# MangoPay::BankAccount.fetch(user_id, {'sort' => 'CreationDate:desc', 'page' => 2, 'per_page' => 3}) # both sorting and pagination params provided
|
49
|
+
#
|
50
|
+
# - For paginated queries the +filters+ param will be supplemented by +total_pages+ and +total_items+ info:
|
51
|
+
#
|
52
|
+
# MangoPay::User.fetch(filter = {'page' => 2, 'per_page' => 3})
|
53
|
+
# filter # => {"page"=>2, "per_page"=>3, "total_pages"=>1969, "total_items"=>5905}
|
54
|
+
#
|
55
|
+
def fetch(id_or_filters = nil)
|
56
|
+
id, filters = HTTPCalls::Fetch.parse_id_or_filters(id_or_filters)
|
57
|
+
response = MangoPay.request(:get, url(id), {}, filters)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.included(base)
|
62
|
+
base.extend(ClassMethods)
|
63
|
+
end
|
64
|
+
|
65
|
+
def self.parse_id_or_filters(id_or_filters = nil)
|
66
|
+
id_or_filters.is_a?(Hash) ? [nil, id_or_filters] : [id_or_filters, {}]
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
module Refund
|
71
|
+
module ClassMethods
|
72
|
+
|
73
|
+
# See http://docs.mangopay.com/api-references/refund/%E2%80%A2-refund-a-pay-in/
|
74
|
+
# See http://docs.mangopay.com/api-references/refund/%E2%80%A2-refund-a-transfer/
|
75
|
+
def refund(id = nil, params = {}, idempotency_key = nil)
|
76
|
+
MangoPay.request(:post, url(id) + '/refunds', params, {}, idempotency_key)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.included(base)
|
81
|
+
base.extend(ClassMethods)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
data/lib/mangopay/json.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
# We can use MultiJson directly , why do we even have this module ?
|
2
|
-
module MangoPay
|
3
|
-
module JSON
|
4
|
-
class << self
|
5
|
-
def dump(*args)
|
6
|
-
MultiJson.dump(*args)
|
7
|
-
end
|
8
|
-
|
9
|
-
def load(*args)
|
10
|
-
MultiJson.load(*args)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
1
|
+
# We can use MultiJson directly , why do we even have this module ?
|
2
|
+
module MangoPay
|
3
|
+
module JSON
|
4
|
+
class << self
|
5
|
+
def dump(*args)
|
6
|
+
MultiJson.dump(*args)
|
7
|
+
end
|
8
|
+
|
9
|
+
def load(*args)
|
10
|
+
MultiJson.load(*args)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|