mangopay-v4 4.0.0 → 4.0.1
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 +5 -5
- data/.gitignore +29 -29
- data/.rspec +3 -3
- data/.rubocop.yml +1 -1
- data/.travis.yml +21 -13
- data/Gemfile +2 -2
- data/LICENSE +20 -20
- data/README.md +379 -379
- data/bin/mangopay +9 -9
- data/lib/mangopay.rb +132 -132
- data/lib/mangopay/api/api.rb +8 -8
- data/lib/mangopay/api/api_methods.rb +160 -136
- data/lib/mangopay/api/auth_token_manager.rb +173 -173
- data/lib/mangopay/api/http_client.rb +324 -324
- data/lib/mangopay/api/service/bank_accounts.rb +145 -145
- data/lib/mangopay/api/service/banking_aliases.rb +83 -0
- data/lib/mangopay/api/service/cards.rb +151 -151
- data/lib/mangopay/api/service/client_wallets.rb +88 -88
- data/lib/mangopay/api/service/clients.rb +67 -67
- data/lib/mangopay/api/service/dispute_documents.rb +157 -157
- data/lib/mangopay/api/service/disputes.rb +186 -186
- data/lib/mangopay/api/service/e_money.rb +63 -41
- data/lib/mangopay/api/service/events.rb +46 -46
- data/lib/mangopay/api/service/hooks.rb +92 -92
- data/lib/mangopay/api/service/kyc_documents.rb +152 -152
- data/lib/mangopay/api/service/mandates.rb +141 -141
- data/lib/mangopay/api/service/oauth_tokens.rb +24 -24
- data/lib/mangopay/api/service/pay_ins.rb +369 -259
- data/lib/mangopay/api/service/pay_outs.rb +53 -53
- data/lib/mangopay/api/service/pre_authorizations.rb +126 -68
- data/lib/mangopay/api/service/refunds.rb +159 -61
- data/lib/mangopay/api/service/reports.rb +150 -150
- data/lib/mangopay/api/service/repudiations.rb +31 -31
- data/lib/mangopay/api/service/responses.rb +101 -101
- data/lib/mangopay/api/service/settlement_transfers.rb +54 -54
- data/lib/mangopay/api/service/transactions.rb +246 -182
- data/lib/mangopay/api/service/transfers.rb +53 -53
- data/lib/mangopay/api/service/ubo_declarations.rb +94 -69
- data/lib/mangopay/api/service/users.rb +162 -162
- data/lib/mangopay/api/service/wallets.rb +98 -98
- data/lib/mangopay/api/uri_provider.rb +32 -34
- data/lib/mangopay/common/json_tag_converter.rb +70 -67
- data/lib/mangopay/common/jsonifier.rb +266 -248
- data/lib/mangopay/common/log_provider.rb +33 -33
- data/lib/mangopay/common/rate_limit_interval.rb +16 -16
- data/lib/mangopay/common/read_only_fields.rb +26 -26
- data/lib/mangopay/common/response_error.rb +61 -61
- data/lib/mangopay/common/sort_direction.rb +14 -14
- data/lib/mangopay/common/sort_field.rb +12 -12
- data/lib/mangopay/common/template_url_options.rb +8 -8
- data/lib/mangopay/configuration.rb +38 -38
- data/lib/mangopay/environment.rb +65 -65
- data/lib/mangopay/model/address.rb +26 -26
- data/lib/mangopay/model/billing.rb +13 -0
- data/lib/mangopay/model/birthplace.rb +15 -0
- data/lib/mangopay/model/declared_ubo.rb +20 -20
- data/lib/mangopay/model/dispute_reason.rb +14 -14
- data/lib/mangopay/model/document_page_consult.rb +14 -14
- data/lib/mangopay/model/e_money.rb +17 -17
- data/lib/mangopay/model/entity/account/bank_account.rb +25 -25
- data/lib/mangopay/model/entity/account/ca_bank_account.rb +26 -26
- data/lib/mangopay/model/entity/account/debited_bank_account.rb +31 -0
- data/lib/mangopay/model/entity/account/gb_bank_account.rb +20 -20
- data/lib/mangopay/model/entity/account/iban_bank_account.rb +20 -20
- data/lib/mangopay/model/entity/account/other_bank_account.rb +23 -23
- data/lib/mangopay/model/entity/account/us_bank_account.rb +23 -23
- data/lib/mangopay/model/entity/banking_alias.rb +27 -0
- data/lib/mangopay/model/entity/card.rb +44 -44
- data/lib/mangopay/model/entity/card_registration.rb +42 -42
- data/lib/mangopay/model/entity/client.rb +65 -62
- data/lib/mangopay/model/entity/client_wallet.rb +22 -22
- data/lib/mangopay/model/entity/dispute.rb +49 -49
- data/lib/mangopay/model/entity/dispute_document.rb +28 -28
- data/lib/mangopay/model/entity/entity_base.rb +17 -17
- data/lib/mangopay/model/entity/hook.rb +25 -25
- data/lib/mangopay/model/entity/kyc_document.rb +27 -27
- data/lib/mangopay/model/entity/mandate.rb +50 -50
- data/lib/mangopay/model/entity/pay_in/apple_pay_direct_pay_in.rb +26 -0
- data/lib/mangopay/model/entity/pay_in/bank_wire_direct_pay_in.rb +24 -21
- data/lib/mangopay/model/entity/pay_in/bank_wire_external_instruction_pay_in.rb +19 -0
- data/lib/mangopay/model/entity/pay_in/card_direct_pay_in.rb +41 -32
- data/lib/mangopay/model/entity/pay_in/card_pre_authorized_pay_in.rb +15 -12
- data/lib/mangopay/model/entity/pay_in/card_web_pay_in.rb +36 -39
- data/lib/mangopay/model/entity/pay_in/direct_debit_direct_pay_in.rb +25 -22
- data/lib/mangopay/model/entity/pay_in/direct_debit_web_pay_in.rb +37 -37
- data/lib/mangopay/model/entity/pay_in/google_pay_direct_pay_in.rb +28 -0
- data/lib/mangopay/model/entity/pay_in/pay_in.rb +18 -15
- data/lib/mangopay/model/entity/pay_in/paypal_web_pay_in.rb +15 -0
- data/lib/mangopay/model/entity/pay_out.rb +21 -21
- data/lib/mangopay/model/entity/pre_authorization.rb +74 -67
- data/lib/mangopay/model/entity/refund.rb +17 -17
- data/lib/mangopay/model/entity/report.rb +50 -50
- data/lib/mangopay/model/entity/repudiation.rb +17 -17
- data/lib/mangopay/model/entity/settlement_transfer.rb +16 -16
- data/lib/mangopay/model/entity/transaction.rb +51 -51
- data/lib/mangopay/model/entity/transfer.rb +12 -12
- data/lib/mangopay/model/entity/ubo.rb +30 -0
- data/lib/mangopay/model/entity/ubo_declaration.rb +29 -31
- data/lib/mangopay/model/entity/user/legal_user.rb +55 -52
- data/lib/mangopay/model/entity/user/natural_user.rb +49 -49
- data/lib/mangopay/model/entity/user/user.rb +17 -17
- data/lib/mangopay/model/entity/wallet.rb +27 -27
- data/lib/mangopay/model/enum/account_type.rb +23 -23
- data/lib/mangopay/model/enum/avs_result.rb +19 -0
- data/lib/mangopay/model/enum/banking_alias_type.rb +12 -0
- data/lib/mangopay/model/enum/business_type.rb +17 -0
- data/lib/mangopay/model/enum/card_status.rb +14 -14
- data/lib/mangopay/model/enum/card_type.rb +32 -32
- data/lib/mangopay/model/enum/card_validity.rb +18 -18
- data/lib/mangopay/model/enum/country_iso.rb +758 -758
- data/lib/mangopay/model/enum/culture_code.rb +43 -43
- data/lib/mangopay/model/enum/currency_iso.rb +551 -551
- data/lib/mangopay/model/enum/declared_ubo_refused_reason_type.rb +15 -15
- data/lib/mangopay/model/enum/declared_ubo_status.rb +17 -17
- data/lib/mangopay/model/enum/deposit_type.rb +14 -14
- data/lib/mangopay/model/enum/direct_debit_type.rb +12 -12
- data/lib/mangopay/model/enum/dispute_doc_refused_reason_type.rb +24 -24
- data/lib/mangopay/model/enum/dispute_document_type.rb +22 -22
- data/lib/mangopay/model/enum/dispute_reason_type.rb +32 -32
- data/lib/mangopay/model/enum/dispute_status.rb +20 -20
- data/lib/mangopay/model/enum/dispute_type.rb +14 -14
- data/lib/mangopay/model/enum/document_status.rb +20 -20
- data/lib/mangopay/model/enum/download_format.rb +10 -10
- data/lib/mangopay/model/enum/event_type.rb +76 -73
- data/lib/mangopay/model/enum/funds_type.rb +14 -14
- data/lib/mangopay/model/enum/hook_status.rb +12 -12
- data/lib/mangopay/model/enum/hook_validity.rb +14 -14
- data/lib/mangopay/model/enum/income_range.rb +20 -20
- data/lib/mangopay/model/enum/kyc_doc_refused_reason_type.rb +36 -36
- data/lib/mangopay/model/enum/kyc_document_type.rb +18 -18
- data/lib/mangopay/model/enum/kyc_level.rb +12 -12
- data/lib/mangopay/model/enum/legal_person_type.rb +14 -14
- data/lib/mangopay/model/enum/mandate_culture_code.rb +22 -22
- data/lib/mangopay/model/enum/mandate_execution_type.rb +10 -10
- data/lib/mangopay/model/enum/mandate_scheme.rb +12 -12
- data/lib/mangopay/model/enum/mandate_status.rb +23 -23
- data/lib/mangopay/model/enum/mandate_type.rb +10 -10
- data/lib/mangopay/model/enum/natural_user_capacity.rb +14 -14
- data/lib/mangopay/model/enum/pay_in_execution_type.rb +17 -17
- data/lib/mangopay/model/enum/pay_in_payment_type.rb +29 -20
- data/lib/mangopay/model/enum/pay_out_payment_type.rb +10 -10
- data/lib/mangopay/model/enum/payment_status.rb +20 -20
- data/lib/mangopay/model/enum/person_type.rb +14 -14
- data/lib/mangopay/model/enum/platform_type.rb +22 -22
- data/lib/mangopay/model/enum/pre_authorization_execution_type.rb +10 -10
- data/lib/mangopay/model/enum/pre_authorization_status.rb +17 -17
- data/lib/mangopay/model/enum/refund_reason_type.rb +20 -20
- data/lib/mangopay/model/enum/report_status.rb +16 -16
- data/lib/mangopay/model/enum/report_type.rb +12 -12
- data/lib/mangopay/model/enum/sector.rb +29 -0
- data/lib/mangopay/model/enum/secure_mode.rb +15 -15
- data/lib/mangopay/model/enum/transaction_nature.rb +16 -16
- data/lib/mangopay/model/enum/transaction_status.rb +14 -14
- data/lib/mangopay/model/enum/transaction_type.rb +14 -14
- data/lib/mangopay/model/enum/ubo_declaration_refused_reason_type.rb +18 -18
- data/lib/mangopay/model/enum/ubo_declaration_status.rb +20 -20
- data/lib/mangopay/model/event.rb +17 -17
- data/lib/mangopay/model/model.rb +214 -193
- data/lib/mangopay/model/money.rb +16 -16
- data/lib/mangopay/model/pay_in_web_extended_view.rb +30 -30
- data/lib/mangopay/model/platform_categorization.rb +15 -0
- data/lib/mangopay/model/refund_reason.rb +14 -14
- data/lib/mangopay/model/report_filter.rb +82 -82
- data/lib/mangopay/model/request/cancel_request.rb +15 -15
- data/lib/mangopay/model/request/complete_registration_request.rb +12 -12
- data/lib/mangopay/model/request/currency_request.rb +12 -12
- data/lib/mangopay/model/request/deactivation_request.rb +9 -9
- data/lib/mangopay/model/request/filter_request.rb +37 -37
- data/lib/mangopay/model/request/submit_document_request.rb +13 -13
- data/lib/mangopay/model/request/submit_ubo_declaration_request.rb +16 -13
- data/lib/mangopay/model/request/upload_file_request.rb +8 -8
- data/lib/mangopay/model/response_replica.rb +26 -26
- data/lib/mangopay/model/security_info.rb +13 -0
- data/lib/mangopay/util/custom_formatter.rb +11 -11
- data/lib/mangopay/util/custom_logger.rb +33 -33
- data/lib/mangopay/util/enum.rb +51 -51
- data/lib/mangopay/util/file_encoder.rb +15 -15
- data/lib/mangopay/util/non_instantiable.rb +5 -5
- data/lib/mangopay/util/storage_strategy.rb +9 -9
- data/lib/mangopay/util/void_logger.rb +5 -5
- data/mangopay-v4.gemspec +32 -0
- data/mangopay.gemspec +32 -32
- data/spec/context/address_context.rb +24 -24
- data/spec/context/bank_account_context.rb +137 -137
- data/spec/context/banking_alias_context.rb +17 -0
- data/spec/context/birthplace_context.rb +17 -0
- data/spec/context/card_context.rb +45 -45
- data/spec/context/client_context.rb +43 -44
- data/spec/context/dispute_context.rb +36 -36
- data/spec/context/dispute_document_context.rb +19 -19
- data/spec/context/hook_context.rb +15 -15
- data/spec/context/kyc_document_context.rb +22 -22
- data/spec/context/mandate_context.rb +26 -26
- data/spec/context/pay_in_context.rb +319 -224
- data/spec/context/pay_out_context.rb +39 -38
- data/spec/context/pre_authorization_context.rb +44 -40
- data/spec/context/refund_context.rb +32 -32
- data/spec/context/report_context.rb +21 -21
- data/spec/context/repudiation_context.rb +18 -18
- data/spec/context/settlement_transfer_context.rb +27 -27
- data/spec/context/transfer_context.rb +50 -50
- data/spec/context/ubo_declaration_context.rb +29 -24
- data/spec/context/user_context.rb +83 -82
- data/spec/context/wallet_context.rb +52 -52
- data/spec/mangopay/bank_accounts_spec.rb +228 -228
- data/spec/mangopay/banking_alias_spec.rb +85 -0
- data/spec/mangopay/cards_spec.rb +133 -134
- data/spec/mangopay/client_wallets_spec.rb +147 -147
- data/spec/mangopay/clients_spec.rb +56 -54
- data/spec/mangopay/configuration_spec.rb +125 -125
- data/spec/mangopay/dispute_documents_spec.rb +173 -173
- data/spec/mangopay/disputes_spec.rb +264 -264
- data/spec/mangopay/e_money_spec.rb +57 -37
- data/spec/mangopay/events_spec.rb +49 -49
- data/spec/mangopay/hooks_spec.rb +70 -70
- data/spec/mangopay/kyc_documents_spec.rb +179 -179
- data/spec/mangopay/mandates_spec.rb +218 -218
- data/spec/mangopay/oauth_tokens_spec.rb +40 -40
- data/spec/mangopay/pay_ins_spec.rb +279 -180
- data/spec/mangopay/pay_outs_spec.rb +38 -38
- data/spec/mangopay/pre_authorizations_spec.rb +134 -57
- data/spec/mangopay/refunds_spec.rb +187 -39
- data/spec/mangopay/reports_spec.rb +118 -120
- data/spec/mangopay/responses_spec.rb +324 -294
- data/spec/mangopay/settlement_transfers_spec.rb +36 -36
- data/spec/mangopay/transactions_spec.rb +347 -232
- data/spec/mangopay/transfers_spec.rb +37 -37
- data/spec/mangopay/ubo_declarations_spec.rb +127 -64
- data/spec/mangopay/users_spec.rb +145 -145
- data/spec/mangopay/wallets_spec.rb +103 -103
- data/spec/spec_helper.rb +72 -72
- data/spec/tmp/MangoPay.AuthorizationToken.FileStore.tmp +6 -0
- data/spec/tmp/mangopay.log.tmp +1201 -0
- metadata +31 -5
@@ -1,142 +1,142 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
|
3
|
-
module MangoApi
|
4
|
-
|
5
|
-
# Provides API method delegates concerning the +Mandate+ entity
|
6
|
-
module Mandates
|
7
|
-
class << self
|
8
|
-
include UriProvider
|
9
|
-
|
10
|
-
# Creates a new mandate entity.
|
11
|
-
#
|
12
|
-
# +Mandate+ properties:
|
13
|
-
# * Required
|
14
|
-
# * bank_account_id
|
15
|
-
# * culture
|
16
|
-
# * return_url
|
17
|
-
# * Optional
|
18
|
-
# * tag
|
19
|
-
#
|
20
|
-
# @param +mandate+ [Mandate] model object of mandate to be created
|
21
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
22
|
-
# @return [Mandate] the newly-created Mandate entity object
|
23
|
-
def create(mandate, id_key = nil)
|
24
|
-
uri = provide_uri(:create_mandate)
|
25
|
-
response = HttpClient.post(uri, mandate, id_key)
|
26
|
-
parse response
|
27
|
-
end
|
28
|
-
|
29
|
-
# Retrieves a mandate entity.
|
30
|
-
#
|
31
|
-
# @param +id+ [String] ID of the mandate to retrieve
|
32
|
-
# @return [Mandate] the requested Mandate entity object
|
33
|
-
def get(id)
|
34
|
-
uri = provide_uri(:get_mandate, id)
|
35
|
-
response = HttpClient.get(uri)
|
36
|
-
parse response
|
37
|
-
end
|
38
|
-
|
39
|
-
# Cancels a mandate.
|
40
|
-
#
|
41
|
-
# @param +id+ [String] ID of the mandate to cancel
|
42
|
-
# @return [Mandate] the updated Mandate entity object
|
43
|
-
def cancel(id)
|
44
|
-
uri = provide_uri(:cancel_mandate, id)
|
45
|
-
response = HttpClient.put(uri)
|
46
|
-
parse response
|
47
|
-
end
|
48
|
-
|
49
|
-
# Retrieves mandate entity pages. Allows configuration
|
50
|
-
# of paging and sorting parameters by yielding a filtering
|
51
|
-
# object to a provided block. When no filters are specified,
|
52
|
-
# will retrieve the first page of 10 newest results.
|
53
|
-
#
|
54
|
-
# Allowed +FilterRequest+ params:
|
55
|
-
# * page
|
56
|
-
# * per_page
|
57
|
-
# * sort_field and sort_direction
|
58
|
-
# * before_date
|
59
|
-
# * after_date
|
60
|
-
#
|
61
|
-
# @return [Array] array of hashed mandate entities corresponding
|
62
|
-
# to provided filters
|
63
|
-
def all
|
64
|
-
uri = provide_uri(:get_mandates)
|
65
|
-
filter_request = nil
|
66
|
-
yield filter_request = FilterRequest.new if block_given?
|
67
|
-
results = HttpClient.get(uri, filter_request)
|
68
|
-
parse_results results
|
69
|
-
end
|
70
|
-
|
71
|
-
# Retrieves pages of mandate entities belonging to a certain user.
|
72
|
-
# Allows configuration of paging and sorting parameters by yielding
|
73
|
-
# a filtering object to a provided block. When no filters are
|
74
|
-
# specified, will retrieve the first page of 10 newest results
|
75
|
-
#
|
76
|
-
# Allowed +FilterRequest+ params:
|
77
|
-
# * page
|
78
|
-
# * per_page
|
79
|
-
# * sort_field and sort_direction
|
80
|
-
# * before_date
|
81
|
-
# * after_date
|
82
|
-
#
|
83
|
-
# @param +id+ [String] ID of the user whose mandates to retrieve
|
84
|
-
# @return [Array] array of hashed mandate entities corresponding
|
85
|
-
# to provided filters
|
86
|
-
def of_user(id)
|
87
|
-
uri = provide_uri(:get_users_mandates, id)
|
88
|
-
filter_request = nil
|
89
|
-
yield filter_request = FilterRequest.new if block_given?
|
90
|
-
results = HttpClient.get(uri, filter_request)
|
91
|
-
parse_results results
|
92
|
-
end
|
93
|
-
|
94
|
-
# Retrieves pages of mandate entities belonging to a certain bank account.
|
95
|
-
# Allows configuration of paging and sorting parameters by yielding
|
96
|
-
# a filtering object to a provided block. When no filters are
|
97
|
-
# specified, will retrieve the first page of 10 newest results
|
98
|
-
#
|
99
|
-
# Allowed +FilterRequest+ params:
|
100
|
-
# * page
|
101
|
-
# * per_page
|
102
|
-
# * sort_field and sort_direction
|
103
|
-
# * before_date
|
104
|
-
# * after_date
|
105
|
-
#
|
106
|
-
# @param +user_id+ [String] ID of the user owning the bank account
|
107
|
-
# @param +account_id+ [String] ID of the bank account whose mandates
|
108
|
-
# to retrieve
|
109
|
-
# @return [Array] array of hashed mandate entities corresponding
|
110
|
-
# to provided filters
|
111
|
-
def of_bank_account(user_id, account_id)
|
112
|
-
uri = provide_uri(:get_accounts_mandates, user_id, account_id)
|
113
|
-
filter_request = nil
|
114
|
-
yield filter_request = FilterRequest.new if block_given?
|
115
|
-
results = HttpClient.get(uri, filter_request)
|
116
|
-
parse_results results
|
117
|
-
end
|
118
|
-
|
119
|
-
private
|
120
|
-
|
121
|
-
# Parses an array of JSON-originating hashes into the corresponding
|
122
|
-
# Mandate entity objects.
|
123
|
-
#
|
124
|
-
# @param +results+ [Array] JSON-originating data hashes
|
125
|
-
# @return [Array] parsed Mandate entity objects
|
126
|
-
def parse_results(results)
|
127
|
-
results.collect do |entity|
|
128
|
-
parse entity
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
# Parses a JSON-originating hash into the corresponding
|
133
|
-
# Mandate entity object.
|
134
|
-
#
|
135
|
-
# @param +response+ [Hash] JSON-originating data hash
|
136
|
-
# @return [Mandate] corresponding Mandate entity object
|
137
|
-
def parse(response)
|
138
|
-
MangoModel::Mandate.new.dejsonify response
|
139
|
-
end
|
140
|
-
end
|
141
|
-
end
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
|
3
|
+
module MangoApi
|
4
|
+
|
5
|
+
# Provides API method delegates concerning the +Mandate+ entity
|
6
|
+
module Mandates
|
7
|
+
class << self
|
8
|
+
include UriProvider
|
9
|
+
|
10
|
+
# Creates a new mandate entity.
|
11
|
+
#
|
12
|
+
# +Mandate+ properties:
|
13
|
+
# * Required
|
14
|
+
# * bank_account_id
|
15
|
+
# * culture
|
16
|
+
# * return_url
|
17
|
+
# * Optional
|
18
|
+
# * tag
|
19
|
+
#
|
20
|
+
# @param +mandate+ [Mandate] model object of mandate to be created
|
21
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
22
|
+
# @return [Mandate] the newly-created Mandate entity object
|
23
|
+
def create(mandate, id_key = nil)
|
24
|
+
uri = provide_uri(:create_mandate)
|
25
|
+
response = HttpClient.post(uri, mandate, id_key)
|
26
|
+
parse response
|
27
|
+
end
|
28
|
+
|
29
|
+
# Retrieves a mandate entity.
|
30
|
+
#
|
31
|
+
# @param +id+ [String] ID of the mandate to retrieve
|
32
|
+
# @return [Mandate] the requested Mandate entity object
|
33
|
+
def get(id)
|
34
|
+
uri = provide_uri(:get_mandate, id)
|
35
|
+
response = HttpClient.get(uri)
|
36
|
+
parse response
|
37
|
+
end
|
38
|
+
|
39
|
+
# Cancels a mandate.
|
40
|
+
#
|
41
|
+
# @param +id+ [String] ID of the mandate to cancel
|
42
|
+
# @return [Mandate] the updated Mandate entity object
|
43
|
+
def cancel(id)
|
44
|
+
uri = provide_uri(:cancel_mandate, id)
|
45
|
+
response = HttpClient.put(uri)
|
46
|
+
parse response
|
47
|
+
end
|
48
|
+
|
49
|
+
# Retrieves mandate entity pages. Allows configuration
|
50
|
+
# of paging and sorting parameters by yielding a filtering
|
51
|
+
# object to a provided block. When no filters are specified,
|
52
|
+
# will retrieve the first page of 10 newest results.
|
53
|
+
#
|
54
|
+
# Allowed +FilterRequest+ params:
|
55
|
+
# * page
|
56
|
+
# * per_page
|
57
|
+
# * sort_field and sort_direction
|
58
|
+
# * before_date
|
59
|
+
# * after_date
|
60
|
+
#
|
61
|
+
# @return [Array] array of hashed mandate entities corresponding
|
62
|
+
# to provided filters
|
63
|
+
def all
|
64
|
+
uri = provide_uri(:get_mandates)
|
65
|
+
filter_request = nil
|
66
|
+
yield filter_request = FilterRequest.new if block_given?
|
67
|
+
results = HttpClient.get(uri, filter_request)
|
68
|
+
parse_results results
|
69
|
+
end
|
70
|
+
|
71
|
+
# Retrieves pages of mandate entities belonging to a certain user.
|
72
|
+
# Allows configuration of paging and sorting parameters by yielding
|
73
|
+
# a filtering object to a provided block. When no filters are
|
74
|
+
# specified, will retrieve the first page of 10 newest results
|
75
|
+
#
|
76
|
+
# Allowed +FilterRequest+ params:
|
77
|
+
# * page
|
78
|
+
# * per_page
|
79
|
+
# * sort_field and sort_direction
|
80
|
+
# * before_date
|
81
|
+
# * after_date
|
82
|
+
#
|
83
|
+
# @param +id+ [String] ID of the user whose mandates to retrieve
|
84
|
+
# @return [Array] array of hashed mandate entities corresponding
|
85
|
+
# to provided filters
|
86
|
+
def of_user(id)
|
87
|
+
uri = provide_uri(:get_users_mandates, id)
|
88
|
+
filter_request = nil
|
89
|
+
yield filter_request = FilterRequest.new if block_given?
|
90
|
+
results = HttpClient.get(uri, filter_request)
|
91
|
+
parse_results results
|
92
|
+
end
|
93
|
+
|
94
|
+
# Retrieves pages of mandate entities belonging to a certain bank account.
|
95
|
+
# Allows configuration of paging and sorting parameters by yielding
|
96
|
+
# a filtering object to a provided block. When no filters are
|
97
|
+
# specified, will retrieve the first page of 10 newest results
|
98
|
+
#
|
99
|
+
# Allowed +FilterRequest+ params:
|
100
|
+
# * page
|
101
|
+
# * per_page
|
102
|
+
# * sort_field and sort_direction
|
103
|
+
# * before_date
|
104
|
+
# * after_date
|
105
|
+
#
|
106
|
+
# @param +user_id+ [String] ID of the user owning the bank account
|
107
|
+
# @param +account_id+ [String] ID of the bank account whose mandates
|
108
|
+
# to retrieve
|
109
|
+
# @return [Array] array of hashed mandate entities corresponding
|
110
|
+
# to provided filters
|
111
|
+
def of_bank_account(user_id, account_id)
|
112
|
+
uri = provide_uri(:get_accounts_mandates, user_id, account_id)
|
113
|
+
filter_request = nil
|
114
|
+
yield filter_request = FilterRequest.new if block_given?
|
115
|
+
results = HttpClient.get(uri, filter_request)
|
116
|
+
parse_results results
|
117
|
+
end
|
118
|
+
|
119
|
+
private
|
120
|
+
|
121
|
+
# Parses an array of JSON-originating hashes into the corresponding
|
122
|
+
# Mandate entity objects.
|
123
|
+
#
|
124
|
+
# @param +results+ [Array] JSON-originating data hashes
|
125
|
+
# @return [Array] parsed Mandate entity objects
|
126
|
+
def parse_results(results)
|
127
|
+
results.collect do |entity|
|
128
|
+
parse entity
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
# Parses a JSON-originating hash into the corresponding
|
133
|
+
# Mandate entity object.
|
134
|
+
#
|
135
|
+
# @param +response+ [Hash] JSON-originating data hash
|
136
|
+
# @return [Mandate] corresponding Mandate entity object
|
137
|
+
def parse(response)
|
138
|
+
MangoModel::Mandate.new.dejsonify response
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
142
|
end
|
@@ -1,25 +1,25 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
|
3
|
-
module MangoApi
|
4
|
-
|
5
|
-
# Provides API method delegates for OAuth authentication.
|
6
|
-
module OAuthTokens
|
7
|
-
class << self
|
8
|
-
include UriProvider
|
9
|
-
|
10
|
-
# Creates a new configuration-specific authorization token.
|
11
|
-
#
|
12
|
-
# @param +mangopay_config+ The MangoPay environment configuration
|
13
|
-
def create(mangopay_config)
|
14
|
-
uri = provide_uri(:create_token)
|
15
|
-
HttpClient.post_raw(uri) do |request|
|
16
|
-
config = mangopay_config
|
17
|
-
request.basic_auth config.client_id, config.
|
18
|
-
request.body = 'grant_type=client_credentials'
|
19
|
-
request.add_field('Content-Type',
|
20
|
-
'application/x-www-form-urlencoded')
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
|
3
|
+
module MangoApi
|
4
|
+
|
5
|
+
# Provides API method delegates for OAuth authentication.
|
6
|
+
module OAuthTokens
|
7
|
+
class << self
|
8
|
+
include UriProvider
|
9
|
+
|
10
|
+
# Creates a new configuration-specific authorization token.
|
11
|
+
#
|
12
|
+
# @param +mangopay_config+ The MangoPay environment configuration
|
13
|
+
def create(mangopay_config)
|
14
|
+
uri = provide_uri(:create_token)
|
15
|
+
HttpClient.post_raw(uri) do |request|
|
16
|
+
config = mangopay_config
|
17
|
+
request.basic_auth config.client_id, config.client_apiKey
|
18
|
+
request.body = 'grant_type=client_credentials'
|
19
|
+
request.add_field('Content-Type',
|
20
|
+
'application/x-www-form-urlencoded')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
25
|
end
|
@@ -1,260 +1,370 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
|
3
|
-
module MangoApi
|
4
|
-
|
5
|
-
# Provides API method delegates concerning the +PayIn+ entity
|
6
|
-
module PayIns
|
7
|
-
class << self
|
8
|
-
include UriProvider
|
9
|
-
|
10
|
-
# Creates a new pay-in entity of +PaymentType::CARD+
|
11
|
-
# and +ExecutionType::WEB+.
|
12
|
-
#
|
13
|
-
# +CardWebPayIn+ properties:
|
14
|
-
# * Required
|
15
|
-
# * author_id
|
16
|
-
# * debited_funds
|
17
|
-
# * fees
|
18
|
-
# * return_url
|
19
|
-
# * credited_wallet_id
|
20
|
-
# * card_type
|
21
|
-
# * culture
|
22
|
-
# * Optional
|
23
|
-
# * tag
|
24
|
-
# * credited_user_id
|
25
|
-
# * secure_mode
|
26
|
-
# * template_url_options
|
27
|
-
# * statement_descriptor
|
28
|
-
#
|
29
|
-
# @param +pay_in+ [CardWebPayIn] the pay-in data model object
|
30
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
31
|
-
# @return [CardWebPayIn] the newly-created pay-in entity object
|
32
|
-
def create_card_web(pay_in, id_key = nil)
|
33
|
-
uri = provide_uri(:create_card_web_pay_in)
|
34
|
-
response = HttpClient.post(uri, pay_in, id_key)
|
35
|
-
parse response
|
36
|
-
end
|
37
|
-
|
38
|
-
# Creates a new pay-in entity of +PaymentType::CARD+
|
39
|
-
# and +ExecutionType::DIRECT+.
|
40
|
-
#
|
41
|
-
# +CardDirectPayIn+ properties:
|
42
|
-
# * Required
|
43
|
-
# * author_id
|
44
|
-
# * credited_wallet_id
|
45
|
-
# * debited_funds
|
46
|
-
# * fees
|
47
|
-
# * secure_mode_return_url
|
48
|
-
# * card_id
|
49
|
-
# * Optional
|
50
|
-
# * tag
|
51
|
-
# * credited_user_id
|
52
|
-
# * secure_mode
|
53
|
-
# * statement_descriptor
|
54
|
-
#
|
55
|
-
# @param +pay_in+ [CardDirectPayIn] the pay-in data model object
|
56
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
57
|
-
# @return [CardDirectPayIn] the newly-created pay-in entity object
|
58
|
-
def create_card_direct(pay_in, id_key = nil)
|
59
|
-
uri = provide_uri(:create_card_direct_pay_in)
|
60
|
-
response = HttpClient.post(uri, pay_in, id_key)
|
61
|
-
parse response
|
62
|
-
end
|
63
|
-
|
64
|
-
# Creates a new pay-in entity of +PaymentType::PREAUTHORIZED+
|
65
|
-
# and +ExecutionType::DIRECT+
|
66
|
-
#
|
67
|
-
# +CardPreAuthorizedPayIn+ properties:
|
68
|
-
# * Required
|
69
|
-
# * author_id
|
70
|
-
# * credited_wallet_id
|
71
|
-
# * debited_funds
|
72
|
-
# * fees
|
73
|
-
# * preauthorization_id
|
74
|
-
# * Optional
|
75
|
-
# * tag
|
76
|
-
# * credited_user_id
|
77
|
-
#
|
78
|
-
# @param +pay_in+ [CardPreAuthorizedPayIn] the pay-in data model object
|
79
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
80
|
-
# @return [CardPreAuthorizedPayIn] the newly-created pay-in entity object
|
81
|
-
def create_card_pre_authorized(pay_in, id_key = nil)
|
82
|
-
uri = provide_uri(:create_card_pre_authorized_pay_in)
|
83
|
-
response = HttpClient.post(uri, pay_in, id_key)
|
84
|
-
parse response
|
85
|
-
end
|
86
|
-
|
87
|
-
# Creates a new pay-in entity of +PaymentType::BANK_WIRE+
|
88
|
-
# and +ExecutionType::DIRECT+.
|
89
|
-
#
|
90
|
-
# +BankWireDirectPayIn+ properties:
|
91
|
-
# * Required
|
92
|
-
# * author_id
|
93
|
-
# * credited_wallet_id
|
94
|
-
# * declared_debited_funds
|
95
|
-
# * declared_fees
|
96
|
-
# * Optional
|
97
|
-
# * tag
|
98
|
-
# * credited_user_id
|
99
|
-
#
|
100
|
-
# @param +pay_in+ [BankWireDirectPayIn] the pay-in data model object
|
101
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
102
|
-
# @return [BankWireDirectPayIn] the newly-created pay-in entity object
|
103
|
-
def create_bank_wire_direct(pay_in, id_key = nil)
|
104
|
-
uri = provide_uri(:create_bank_wire_direct_pay_in)
|
105
|
-
response = HttpClient.post(uri, pay_in, id_key)
|
106
|
-
parse response
|
107
|
-
end
|
108
|
-
|
109
|
-
# Creates a new pay-in entity of +PaymentType::BANK_WIRE+
|
110
|
-
# and +ExecutionType::DIRECT+. This method can be used
|
111
|
-
# to add funds to the environment's client's wallets.
|
112
|
-
#
|
113
|
-
# +BankWireDirectPayIn+ properties:
|
114
|
-
# * Required
|
115
|
-
# * credited_wallet_id
|
116
|
-
# * declared_debited_funds
|
117
|
-
# * declared_fees
|
118
|
-
# * Optional
|
119
|
-
# * tag
|
120
|
-
#
|
121
|
-
# @param +pay_in+ [BankWireDirectPayIn] the pay-in data model object
|
122
|
-
# Note: The ID field must contain one of the automatically-generated
|
123
|
-
# ClientWallet IDs specific to the current environment's client
|
124
|
-
# (+FUNDS_TYPE+ _ +CURRENCY+ - FEES_EUR, CREDIT_USD etc.)
|
125
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
126
|
-
def create_client_bank_wire_direct(pay_in, id_key = nil)
|
127
|
-
uri = provide_uri(:create_client_bank_wire_direct_pay_in)
|
128
|
-
response = HttpClient.post(uri, pay_in, id_key)
|
129
|
-
parse response
|
130
|
-
end
|
131
|
-
|
132
|
-
# Creates a new pay-in entity of +PaymentType::DIRECT_DEBIT+
|
133
|
-
# and +ExecutionType::WEB+.
|
134
|
-
#
|
135
|
-
# +DirectDebitWebPayIn+ properties:
|
136
|
-
# * Required
|
137
|
-
# * author_id
|
138
|
-
# * debited_funds
|
139
|
-
# * fees
|
140
|
-
# * return_url
|
141
|
-
# * credited_wallet_id
|
142
|
-
# * direct_debit_type
|
143
|
-
# * culture
|
144
|
-
# * Optional
|
145
|
-
# * tag
|
146
|
-
# * credited_user_id
|
147
|
-
# * secure_mode
|
148
|
-
# * template_url_options
|
149
|
-
#
|
150
|
-
# @param +pay_in+ [DirectDebitWebPayIn] the pay-in data model object
|
151
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
152
|
-
# @return [DirectDebitWebPayIn] the newly-created pay-in entity object
|
153
|
-
def create_direct_debit_web(pay_in, id_key = nil)
|
154
|
-
uri = provide_uri(:create_direct_debit_web_pay_in)
|
155
|
-
response = HttpClient.post(uri, pay_in, id_key)
|
156
|
-
parse response
|
157
|
-
end
|
158
|
-
|
159
|
-
# Creates a new pay-in entity of +PaymentType::DIRECT_DEBIT+
|
160
|
-
# and +ExecutionType::DIRECT+.
|
161
|
-
#
|
162
|
-
# +DirectDebitDirectPayIn+ properties:
|
163
|
-
# * Required
|
164
|
-
# * author_id
|
165
|
-
# * credited_wallet_id
|
166
|
-
# * debited_funds
|
167
|
-
# * fees
|
168
|
-
# * mandate_id
|
169
|
-
# * Optional
|
170
|
-
# * tag
|
171
|
-
# * credited_user_id
|
172
|
-
# * statement_descriptor
|
173
|
-
#
|
174
|
-
# @param +pay_in+ [DirectDebitDirectPayIn] the pay-in data model object
|
175
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
176
|
-
# @return [DirectDebitDirectPayIn] the newly-created pay-in entity object
|
177
|
-
def create_direct_debit_direct(pay_in, id_key = nil)
|
178
|
-
uri = provide_uri(:create_direct_debit_direct_pay_in)
|
179
|
-
response = HttpClient.post(uri, pay_in, id_key)
|
180
|
-
parse response
|
181
|
-
end
|
182
|
-
|
183
|
-
|
184
|
-
#
|
185
|
-
#
|
186
|
-
#
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
#
|
194
|
-
#
|
195
|
-
#
|
196
|
-
#
|
197
|
-
#
|
198
|
-
#
|
199
|
-
#
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
#
|
220
|
-
#
|
221
|
-
#
|
222
|
-
#
|
223
|
-
#
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
#
|
230
|
-
#
|
231
|
-
# @param +
|
232
|
-
# @return [
|
233
|
-
def
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
|
3
|
+
module MangoApi
|
4
|
+
|
5
|
+
# Provides API method delegates concerning the +PayIn+ entity
|
6
|
+
module PayIns
|
7
|
+
class << self
|
8
|
+
include UriProvider
|
9
|
+
|
10
|
+
# Creates a new pay-in entity of +PaymentType::CARD+
|
11
|
+
# and +ExecutionType::WEB+.
|
12
|
+
#
|
13
|
+
# +CardWebPayIn+ properties:
|
14
|
+
# * Required
|
15
|
+
# * author_id
|
16
|
+
# * debited_funds
|
17
|
+
# * fees
|
18
|
+
# * return_url
|
19
|
+
# * credited_wallet_id
|
20
|
+
# * card_type
|
21
|
+
# * culture
|
22
|
+
# * Optional
|
23
|
+
# * tag
|
24
|
+
# * credited_user_id
|
25
|
+
# * secure_mode
|
26
|
+
# * template_url_options
|
27
|
+
# * statement_descriptor
|
28
|
+
#
|
29
|
+
# @param +pay_in+ [CardWebPayIn] the pay-in data model object
|
30
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
31
|
+
# @return [CardWebPayIn] the newly-created pay-in entity object
|
32
|
+
def create_card_web(pay_in, id_key = nil)
|
33
|
+
uri = provide_uri(:create_card_web_pay_in)
|
34
|
+
response = HttpClient.post(uri, pay_in, id_key)
|
35
|
+
parse response
|
36
|
+
end
|
37
|
+
|
38
|
+
# Creates a new pay-in entity of +PaymentType::CARD+
|
39
|
+
# and +ExecutionType::DIRECT+.
|
40
|
+
#
|
41
|
+
# +CardDirectPayIn+ properties:
|
42
|
+
# * Required
|
43
|
+
# * author_id
|
44
|
+
# * credited_wallet_id
|
45
|
+
# * debited_funds
|
46
|
+
# * fees
|
47
|
+
# * secure_mode_return_url
|
48
|
+
# * card_id
|
49
|
+
# * Optional
|
50
|
+
# * tag
|
51
|
+
# * credited_user_id
|
52
|
+
# * secure_mode
|
53
|
+
# * statement_descriptor
|
54
|
+
#
|
55
|
+
# @param +pay_in+ [CardDirectPayIn] the pay-in data model object
|
56
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
57
|
+
# @return [CardDirectPayIn] the newly-created pay-in entity object
|
58
|
+
def create_card_direct(pay_in, id_key = nil)
|
59
|
+
uri = provide_uri(:create_card_direct_pay_in)
|
60
|
+
response = HttpClient.post(uri, pay_in, id_key)
|
61
|
+
parse response
|
62
|
+
end
|
63
|
+
|
64
|
+
# Creates a new pay-in entity of +PaymentType::PREAUTHORIZED+
|
65
|
+
# and +ExecutionType::DIRECT+
|
66
|
+
#
|
67
|
+
# +CardPreAuthorizedPayIn+ properties:
|
68
|
+
# * Required
|
69
|
+
# * author_id
|
70
|
+
# * credited_wallet_id
|
71
|
+
# * debited_funds
|
72
|
+
# * fees
|
73
|
+
# * preauthorization_id
|
74
|
+
# * Optional
|
75
|
+
# * tag
|
76
|
+
# * credited_user_id
|
77
|
+
#
|
78
|
+
# @param +pay_in+ [CardPreAuthorizedPayIn] the pay-in data model object
|
79
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
80
|
+
# @return [CardPreAuthorizedPayIn] the newly-created pay-in entity object
|
81
|
+
def create_card_pre_authorized(pay_in, id_key = nil)
|
82
|
+
uri = provide_uri(:create_card_pre_authorized_pay_in)
|
83
|
+
response = HttpClient.post(uri, pay_in, id_key)
|
84
|
+
parse response
|
85
|
+
end
|
86
|
+
|
87
|
+
# Creates a new pay-in entity of +PaymentType::BANK_WIRE+
|
88
|
+
# and +ExecutionType::DIRECT+.
|
89
|
+
#
|
90
|
+
# +BankWireDirectPayIn+ properties:
|
91
|
+
# * Required
|
92
|
+
# * author_id
|
93
|
+
# * credited_wallet_id
|
94
|
+
# * declared_debited_funds
|
95
|
+
# * declared_fees
|
96
|
+
# * Optional
|
97
|
+
# * tag
|
98
|
+
# * credited_user_id
|
99
|
+
#
|
100
|
+
# @param +pay_in+ [BankWireDirectPayIn] the pay-in data model object
|
101
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
102
|
+
# @return [BankWireDirectPayIn] the newly-created pay-in entity object
|
103
|
+
def create_bank_wire_direct(pay_in, id_key = nil)
|
104
|
+
uri = provide_uri(:create_bank_wire_direct_pay_in)
|
105
|
+
response = HttpClient.post(uri, pay_in, id_key)
|
106
|
+
parse response
|
107
|
+
end
|
108
|
+
|
109
|
+
# Creates a new pay-in entity of +PaymentType::BANK_WIRE+
|
110
|
+
# and +ExecutionType::DIRECT+. This method can be used
|
111
|
+
# to add funds to the environment's client's wallets.
|
112
|
+
#
|
113
|
+
# +BankWireDirectPayIn+ properties:
|
114
|
+
# * Required
|
115
|
+
# * credited_wallet_id
|
116
|
+
# * declared_debited_funds
|
117
|
+
# * declared_fees
|
118
|
+
# * Optional
|
119
|
+
# * tag
|
120
|
+
#
|
121
|
+
# @param +pay_in+ [BankWireDirectPayIn] the pay-in data model object
|
122
|
+
# Note: The ID field must contain one of the automatically-generated
|
123
|
+
# ClientWallet IDs specific to the current environment's client
|
124
|
+
# (+FUNDS_TYPE+ _ +CURRENCY+ - FEES_EUR, CREDIT_USD etc.)
|
125
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
126
|
+
def create_client_bank_wire_direct(pay_in, id_key = nil)
|
127
|
+
uri = provide_uri(:create_client_bank_wire_direct_pay_in)
|
128
|
+
response = HttpClient.post(uri, pay_in, id_key)
|
129
|
+
parse response
|
130
|
+
end
|
131
|
+
|
132
|
+
# Creates a new pay-in entity of +PaymentType::DIRECT_DEBIT+
|
133
|
+
# and +ExecutionType::WEB+.
|
134
|
+
#
|
135
|
+
# +DirectDebitWebPayIn+ properties:
|
136
|
+
# * Required
|
137
|
+
# * author_id
|
138
|
+
# * debited_funds
|
139
|
+
# * fees
|
140
|
+
# * return_url
|
141
|
+
# * credited_wallet_id
|
142
|
+
# * direct_debit_type
|
143
|
+
# * culture
|
144
|
+
# * Optional
|
145
|
+
# * tag
|
146
|
+
# * credited_user_id
|
147
|
+
# * secure_mode
|
148
|
+
# * template_url_options
|
149
|
+
#
|
150
|
+
# @param +pay_in+ [DirectDebitWebPayIn] the pay-in data model object
|
151
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
152
|
+
# @return [DirectDebitWebPayIn] the newly-created pay-in entity object
|
153
|
+
def create_direct_debit_web(pay_in, id_key = nil)
|
154
|
+
uri = provide_uri(:create_direct_debit_web_pay_in)
|
155
|
+
response = HttpClient.post(uri, pay_in, id_key)
|
156
|
+
parse response
|
157
|
+
end
|
158
|
+
|
159
|
+
# Creates a new pay-in entity of +PaymentType::DIRECT_DEBIT+
|
160
|
+
# and +ExecutionType::DIRECT+.
|
161
|
+
#
|
162
|
+
# +DirectDebitDirectPayIn+ properties:
|
163
|
+
# * Required
|
164
|
+
# * author_id
|
165
|
+
# * credited_wallet_id
|
166
|
+
# * debited_funds
|
167
|
+
# * fees
|
168
|
+
# * mandate_id
|
169
|
+
# * Optional
|
170
|
+
# * tag
|
171
|
+
# * credited_user_id
|
172
|
+
# * statement_descriptor
|
173
|
+
#
|
174
|
+
# @param +pay_in+ [DirectDebitDirectPayIn] the pay-in data model object
|
175
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
176
|
+
# @return [DirectDebitDirectPayIn] the newly-created pay-in entity object
|
177
|
+
def create_direct_debit_direct(pay_in, id_key = nil)
|
178
|
+
uri = provide_uri(:create_direct_debit_direct_pay_in)
|
179
|
+
response = HttpClient.post(uri, pay_in, id_key)
|
180
|
+
parse response
|
181
|
+
end
|
182
|
+
|
183
|
+
|
184
|
+
# Creates a new pay-in entity of +PaymentType::PAYPAL+
|
185
|
+
# and +ExecutionType::WEB+.
|
186
|
+
#
|
187
|
+
# +PaypalWebPayIn+ properties:
|
188
|
+
# * Required
|
189
|
+
# * author_id
|
190
|
+
# * debited_funds
|
191
|
+
# * fees
|
192
|
+
# * return_url
|
193
|
+
# * credited_wallet_id
|
194
|
+
# * direct_debit_type
|
195
|
+
# * shipping_address
|
196
|
+
# * paypal_buyer_account_email
|
197
|
+
# * culture
|
198
|
+
# * Optional
|
199
|
+
# * tag
|
200
|
+
# * credited_user_id
|
201
|
+
# * secure_mode
|
202
|
+
# * template_url_options
|
203
|
+
#
|
204
|
+
# @param +pay_in+ [PaypalWebPayIn] the pay-in data model object
|
205
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
206
|
+
# @return [PaypalWebPayIn] the newly-created pay-in entity object
|
207
|
+
def create_paypal_web(pay_in, id_key = nil)
|
208
|
+
uri = provide_uri(:create_paypal_web_pay_in)
|
209
|
+
response = HttpClient.post(uri, pay_in, id_key)
|
210
|
+
parse response
|
211
|
+
end
|
212
|
+
|
213
|
+
# Creates a new pay-in entity of +PaymentType::APPLE_PAY+
|
214
|
+
# and +ExecutionType::DIRECT+.
|
215
|
+
#
|
216
|
+
# +ApplePayPayIn+ properties:
|
217
|
+
# * Required
|
218
|
+
# * author_id
|
219
|
+
# * credited_wallet_id
|
220
|
+
# * debited_funds
|
221
|
+
# * fees
|
222
|
+
# * transaction_id
|
223
|
+
# * network
|
224
|
+
# * token_data
|
225
|
+
# * Optional
|
226
|
+
# * tag
|
227
|
+
# * credited_user_id
|
228
|
+
# * statement_descriptor
|
229
|
+
#
|
230
|
+
# @param +pay_in+ [ApplePayPayIn] the pay-in data model object
|
231
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
232
|
+
# @return [ApplePayPayIn] the newly-created pay-in entity object
|
233
|
+
def create_apple_pay_direct(pay_in, id_key = nil)
|
234
|
+
uri = provide_uri(:create_apple_pay_pay_in)
|
235
|
+
json = pay_in.jsonify!
|
236
|
+
payment_data = pay_in.payment_data.to_json
|
237
|
+
new_json = json[0..json.length - 2] + "," + "\"PaymentData\":" + payment_data + "}"
|
238
|
+
response = HttpClient.post_raw(uri) do |request|
|
239
|
+
HttpClient.api_headers.each { |k, v| request.add_field(k, v) }
|
240
|
+
request.add_field('Idempotency-Key', id_key) if id_key
|
241
|
+
request.body = new_json
|
242
|
+
end
|
243
|
+
parse response
|
244
|
+
end
|
245
|
+
|
246
|
+
# Creates a new pay-in entity of +PaymentType::GOOGLE_PAY+
|
247
|
+
# and +ExecutionType::DIRECT+.
|
248
|
+
#
|
249
|
+
# +GooglePayPayIn+ properties:
|
250
|
+
# * Required
|
251
|
+
# * author_id
|
252
|
+
# * credited_wallet_id
|
253
|
+
# * debited_funds
|
254
|
+
# * fees
|
255
|
+
# * transaction_id
|
256
|
+
# * network
|
257
|
+
# * token_data
|
258
|
+
# * billing
|
259
|
+
# * Optional
|
260
|
+
# * tag
|
261
|
+
# * credited_user_id
|
262
|
+
# * statement_descriptor
|
263
|
+
#
|
264
|
+
# @param +pay_in+ [GooglePayPayIn] the pay-in data model object
|
265
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
266
|
+
# @return [GooglePayPayIn] the newly-created pay-in entity object
|
267
|
+
def create_google_pay_direct(pay_in, id_key = nil)
|
268
|
+
uri = provide_uri(:create_google_pay_pay_in)
|
269
|
+
json = pay_in.jsonify!
|
270
|
+
payment_data = pay_in.payment_data.to_json
|
271
|
+
billing = pay_in.billing.to_json
|
272
|
+
new_json = json[0..json.length - 2] + "," + "\"PaymentData\":" + payment_data + "\"Billing\":" + billing + "}"
|
273
|
+
response = HttpClient.post_raw(uri) do |request|
|
274
|
+
HttpClient.api_headers.each { |k, v| request.add_field(k, v) }
|
275
|
+
request.add_field('Idempotency-Key', id_key) if id_key
|
276
|
+
request.body = new_json
|
277
|
+
end
|
278
|
+
parse response
|
279
|
+
end
|
280
|
+
|
281
|
+
# Retrieves a pay-in entity.
|
282
|
+
#
|
283
|
+
# @param +id+ [String] ID of the pay-in to be retrieved
|
284
|
+
# @return [PayIn] the requested entity object
|
285
|
+
def get(id)
|
286
|
+
uri = provide_uri(:get_pay_in, id)
|
287
|
+
response = HttpClient.get(uri)
|
288
|
+
parse response
|
289
|
+
end
|
290
|
+
|
291
|
+
# Retrieves a detailed view of details concerning the
|
292
|
+
# card used to process a Web payment.
|
293
|
+
#
|
294
|
+
# @param +pay_in_id+ [String] ID of the Card Web Pay-In entity
|
295
|
+
# for which to retrieve extended details view
|
296
|
+
# @return [PayInWebExtendedView] Object containing extended
|
297
|
+
# details about the card
|
298
|
+
def extended_card_view(pay_in_id)
|
299
|
+
uri = provide_uri(:get_extended_card_view, pay_in_id)
|
300
|
+
response = HttpClient.get(uri)
|
301
|
+
parse_card_view response
|
302
|
+
end
|
303
|
+
|
304
|
+
private
|
305
|
+
|
306
|
+
# Parses an array of JSON-originating hashes into the corresponding
|
307
|
+
# PayIn entity objects.
|
308
|
+
#
|
309
|
+
# @param +results+ [Array] JSON-originating data hashes
|
310
|
+
# @return [Array] parsed PayIn entity objects
|
311
|
+
def parse_results(results)
|
312
|
+
results.collect do |entity|
|
313
|
+
parse entity
|
314
|
+
end
|
315
|
+
end
|
316
|
+
|
317
|
+
# Parses a JSON-originating hash into the corresponding
|
318
|
+
# PayIn entity object.
|
319
|
+
#
|
320
|
+
# @param +response+ [Hash] JSON-originating data hash
|
321
|
+
# @return [PayIn] corresponding PayIn entity object
|
322
|
+
def parse(response)
|
323
|
+
type = pay_in_type(response)
|
324
|
+
type.new.dejsonify response
|
325
|
+
end
|
326
|
+
|
327
|
+
# Asserts the type of pay-in represented by a hash
|
328
|
+
#
|
329
|
+
# @param +hash+ [Hash] source hash
|
330
|
+
# @return [Class] type of pay-in represented by the hash
|
331
|
+
def pay_in_type(hash)
|
332
|
+
if hash['PaymentType'] == MangoModel::PayInPaymentType::CARD.to_s\
|
333
|
+
&& hash['ExecutionType'] == MangoModel::PayInExecutionType::WEB.to_s
|
334
|
+
MangoModel::CardWebPayIn
|
335
|
+
elsif hash['PaymentType'] == MangoModel::PayInPaymentType::CARD.to_s\
|
336
|
+
&& hash['ExecutionType'] == MangoModel::PayInExecutionType::DIRECT.to_s
|
337
|
+
MangoModel::CardDirectPayIn
|
338
|
+
elsif hash['PaymentType'] == MangoModel::PayInPaymentType::PREAUTHORIZED.to_s\
|
339
|
+
&& hash['ExecutionType'] == MangoModel::PayInExecutionType::DIRECT.to_s
|
340
|
+
MangoModel::CardPreAuthorizedPayIn
|
341
|
+
elsif hash['PaymentType'] == MangoModel::PayInPaymentType::BANK_WIRE.to_s\
|
342
|
+
&& hash['ExecutionType'] == MangoModel::PayInExecutionType::DIRECT.to_s
|
343
|
+
MangoModel::BankWireDirectPayIn
|
344
|
+
elsif hash['PaymentType'] == MangoModel::PayInPaymentType::BANK_WIRE.to_s\
|
345
|
+
&& hash['ExecutionType'] == MangoModel::PayInExecutionType::EXTERNAL_INSTRUCTION.to_s
|
346
|
+
MangoModel::BankWireExternalInstructionPayIn
|
347
|
+
elsif hash['PaymentType'] == MangoModel::PayInPaymentType::DIRECT_DEBIT.to_s\
|
348
|
+
&& hash['ExecutionType'] == MangoModel::PayInExecutionType::WEB.to_s
|
349
|
+
MangoModel::DirectDebitWebPayIn
|
350
|
+
elsif hash['PaymentType'] == MangoModel::PayInPaymentType::DIRECT_DEBIT.to_s\
|
351
|
+
&& hash['ExecutionType'] == MangoModel::PayInExecutionType::DIRECT.to_s
|
352
|
+
MangoModel::DirectDebitDirectPayIn
|
353
|
+
elsif hash['PaymentType'] == MangoModel::PayInPaymentType::PAYPAL.to_s\
|
354
|
+
&& hash['ExecutionType'] == MangoModel::PayInExecutionType::WEB.to_s
|
355
|
+
MangoModel::PaypalWebPayIn
|
356
|
+
elsif hash['PaymentType'] == MangoModel::PayInPaymentType::APPLEPAY.to_s\
|
357
|
+
&& hash['ExecutionType'] == MangoModel::PayInExecutionType::DIRECT.to_s
|
358
|
+
MangoModel::ApplePayPayIn
|
359
|
+
elsif hash['PaymentType'] == MangoModel::PayInPaymentType::GOOGLEPAY.to_s\
|
360
|
+
&& hash['ExecutionType'] == MangoModel::PayInExecutionType::DIRECT.to_s
|
361
|
+
MangoModel::GooglePayPayIn
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
def parse_card_view(response)
|
366
|
+
MangoModel::PayInWebExtendedView.new.dejsonify response
|
367
|
+
end
|
368
|
+
end
|
369
|
+
end
|
260
370
|
end
|