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,146 +1,146 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
require_relative '../../model/request/filter_request'
|
3
|
-
require_relative '../../model/request/deactivation_request'
|
4
|
-
|
5
|
-
module MangoApi
|
6
|
-
|
7
|
-
# Provides API method delegates concerning the +BankAccount+ entity
|
8
|
-
module BankAccounts
|
9
|
-
class << self
|
10
|
-
include UriProvider
|
11
|
-
|
12
|
-
# Creates a new bank account entity.
|
13
|
-
#
|
14
|
-
# +BankAccount+ properties:
|
15
|
-
# * +IbanBankAccount
|
16
|
-
# * +tag+ - optional
|
17
|
-
# * +owner_address+ - required
|
18
|
-
# * +owner_name+ - required
|
19
|
-
# * +iban+ - required
|
20
|
-
# * +bic+ - optional
|
21
|
-
# * +UsBankAccount+
|
22
|
-
# * +tag+ - optional
|
23
|
-
# * +owner_address+ - required
|
24
|
-
# * +owner_name+ - required
|
25
|
-
# * +account_number+ - required
|
26
|
-
# * +aba+ - required
|
27
|
-
# * +deposit_account_type+ - optional
|
28
|
-
# * +CaBankAccount+
|
29
|
-
# * +tag+ - optional
|
30
|
-
# * +owner_address+ - required
|
31
|
-
# * +owner_name+ - required
|
32
|
-
# * +branch_code+ - required
|
33
|
-
# * +institution_number+ - required
|
34
|
-
# * +account_number+ - required
|
35
|
-
# * +bank_name+ - required
|
36
|
-
# * +GbBankAccount+
|
37
|
-
# * +tag+ - optional
|
38
|
-
# * +owner_address+ - required
|
39
|
-
# * +owner_name+ - required
|
40
|
-
# * +sort_code+ - required
|
41
|
-
# * +account_number+ - required
|
42
|
-
# * +OtherBankAccount+
|
43
|
-
# * +tag+ optional
|
44
|
-
# * +owner_address+ - required
|
45
|
-
# * +owner_name+ - required
|
46
|
-
# * +country+ - required
|
47
|
-
# * +bic+ - required
|
48
|
-
# * +account_number+ - required
|
49
|
-
#
|
50
|
-
# @param +account+ [BankAccount] model object of account to be created
|
51
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
52
|
-
# @return [BankAccount] the newly-created BankAccount entity object
|
53
|
-
def create(account, id_key = nil)
|
54
|
-
uri = provide_uri(:create_account, account)
|
55
|
-
response = HttpClient.post(uri, account, id_key)
|
56
|
-
parse response
|
57
|
-
end
|
58
|
-
|
59
|
-
# Deactivates a bank account entity.
|
60
|
-
#
|
61
|
-
# @param +user_id+ [String] ID of the owner of the account
|
62
|
-
# being deactivated
|
63
|
-
# @param +account_id+ [String] ID of the bank account being deactivated
|
64
|
-
# @return [BankAccount] deactivated BankAccount entity object
|
65
|
-
def deactivate(user_id, account_id)
|
66
|
-
uri = provide_uri(:deactivate_account, user_id, account_id)
|
67
|
-
response = HttpClient.put(uri, DeactivationRequest.new)
|
68
|
-
parse response
|
69
|
-
end
|
70
|
-
|
71
|
-
# Retrieves a bank account for a user.
|
72
|
-
#
|
73
|
-
# @param +user_id+ [String] ID of the bank account's owner
|
74
|
-
# @param +account+id+ [String] ID of the bank account
|
75
|
-
# @return [BankAccount] the corresponding BankAccount object
|
76
|
-
def get(user_id, account_id)
|
77
|
-
uri = provide_uri(:get_account, user_id, account_id)
|
78
|
-
response = HttpClient.get(uri)
|
79
|
-
parse response
|
80
|
-
end
|
81
|
-
|
82
|
-
# Retrieves pages of a user's bank accounts. Allows
|
83
|
-
# configuration of paging and sorting parameters by
|
84
|
-
# yielding a filtering object to a provided block.
|
85
|
-
# When no filters are specified, will retrieve the
|
86
|
-
# first page of 10 newest results.
|
87
|
-
#
|
88
|
-
# Allowed +FilterRequest+ params:
|
89
|
-
# * page
|
90
|
-
# * per_page
|
91
|
-
# * sort_field and sort_direction
|
92
|
-
#
|
93
|
-
# @param +user_id+ [String] ID of the user whose bank accounts to get
|
94
|
-
# @return [Array] parsed BankAccount entity objects
|
95
|
-
def all(user_id)
|
96
|
-
uri = provide_uri(:get_accounts, user_id)
|
97
|
-
filter_request = nil
|
98
|
-
yield filter_request = FilterRequest.new if block_given?
|
99
|
-
results = HttpClient.get(uri, filter_request)
|
100
|
-
parse_results results
|
101
|
-
end
|
102
|
-
|
103
|
-
private
|
104
|
-
|
105
|
-
# Parses an array of JSON-originating hashes into the corresponding
|
106
|
-
# BankAccount entity objects.
|
107
|
-
#
|
108
|
-
# @param +results+ [Array] JSON-originating data hashes
|
109
|
-
# @return [Array] parsed BankAccount entity objects
|
110
|
-
def parse_results(results)
|
111
|
-
results.collect do |entity|
|
112
|
-
parse entity
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
# Parses a JSON-originating hash into the corresponding
|
117
|
-
# BankAccount entity object.
|
118
|
-
#
|
119
|
-
# @param +response+ [Hash] JSON-originating data hash
|
120
|
-
# @return [BankAccount] corresponding BankAccount entity object
|
121
|
-
def parse(response)
|
122
|
-
type = bank_account_type(response)
|
123
|
-
type.new.dejsonify response
|
124
|
-
end
|
125
|
-
|
126
|
-
# Asserts the type of bank account represented by a hash.
|
127
|
-
#
|
128
|
-
# @param +hash+ [Hash] source hash
|
129
|
-
# @return [Class] type of bank account represented by the hash
|
130
|
-
def bank_account_type(hash)
|
131
|
-
case hash['Type']
|
132
|
-
when MangoModel::AccountType::IBAN.to_s
|
133
|
-
MangoModel::IbanBankAccount
|
134
|
-
when MangoModel::AccountType::US.to_s
|
135
|
-
MangoModel::UsBankAccount
|
136
|
-
when MangoModel::AccountType::CA.to_s
|
137
|
-
MangoModel::CaBankAccount
|
138
|
-
when MangoModel::AccountType::GB.to_s
|
139
|
-
MangoModel::GbBankAccount
|
140
|
-
else
|
141
|
-
MangoModel::OtherBankAccount
|
142
|
-
end
|
143
|
-
end
|
144
|
-
end
|
145
|
-
end
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
require_relative '../../model/request/filter_request'
|
3
|
+
require_relative '../../model/request/deactivation_request'
|
4
|
+
|
5
|
+
module MangoApi
|
6
|
+
|
7
|
+
# Provides API method delegates concerning the +BankAccount+ entity
|
8
|
+
module BankAccounts
|
9
|
+
class << self
|
10
|
+
include UriProvider
|
11
|
+
|
12
|
+
# Creates a new bank account entity.
|
13
|
+
#
|
14
|
+
# +BankAccount+ properties:
|
15
|
+
# * +IbanBankAccount
|
16
|
+
# * +tag+ - optional
|
17
|
+
# * +owner_address+ - required
|
18
|
+
# * +owner_name+ - required
|
19
|
+
# * +iban+ - required
|
20
|
+
# * +bic+ - optional
|
21
|
+
# * +UsBankAccount+
|
22
|
+
# * +tag+ - optional
|
23
|
+
# * +owner_address+ - required
|
24
|
+
# * +owner_name+ - required
|
25
|
+
# * +account_number+ - required
|
26
|
+
# * +aba+ - required
|
27
|
+
# * +deposit_account_type+ - optional
|
28
|
+
# * +CaBankAccount+
|
29
|
+
# * +tag+ - optional
|
30
|
+
# * +owner_address+ - required
|
31
|
+
# * +owner_name+ - required
|
32
|
+
# * +branch_code+ - required
|
33
|
+
# * +institution_number+ - required
|
34
|
+
# * +account_number+ - required
|
35
|
+
# * +bank_name+ - required
|
36
|
+
# * +GbBankAccount+
|
37
|
+
# * +tag+ - optional
|
38
|
+
# * +owner_address+ - required
|
39
|
+
# * +owner_name+ - required
|
40
|
+
# * +sort_code+ - required
|
41
|
+
# * +account_number+ - required
|
42
|
+
# * +OtherBankAccount+
|
43
|
+
# * +tag+ optional
|
44
|
+
# * +owner_address+ - required
|
45
|
+
# * +owner_name+ - required
|
46
|
+
# * +country+ - required
|
47
|
+
# * +bic+ - required
|
48
|
+
# * +account_number+ - required
|
49
|
+
#
|
50
|
+
# @param +account+ [BankAccount] model object of account to be created
|
51
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
52
|
+
# @return [BankAccount] the newly-created BankAccount entity object
|
53
|
+
def create(account, id_key = nil)
|
54
|
+
uri = provide_uri(:create_account, account)
|
55
|
+
response = HttpClient.post(uri, account, id_key)
|
56
|
+
parse response
|
57
|
+
end
|
58
|
+
|
59
|
+
# Deactivates a bank account entity.
|
60
|
+
#
|
61
|
+
# @param +user_id+ [String] ID of the owner of the account
|
62
|
+
# being deactivated
|
63
|
+
# @param +account_id+ [String] ID of the bank account being deactivated
|
64
|
+
# @return [BankAccount] deactivated BankAccount entity object
|
65
|
+
def deactivate(user_id, account_id)
|
66
|
+
uri = provide_uri(:deactivate_account, user_id, account_id)
|
67
|
+
response = HttpClient.put(uri, DeactivationRequest.new)
|
68
|
+
parse response
|
69
|
+
end
|
70
|
+
|
71
|
+
# Retrieves a bank account for a user.
|
72
|
+
#
|
73
|
+
# @param +user_id+ [String] ID of the bank account's owner
|
74
|
+
# @param +account+id+ [String] ID of the bank account
|
75
|
+
# @return [BankAccount] the corresponding BankAccount object
|
76
|
+
def get(user_id, account_id)
|
77
|
+
uri = provide_uri(:get_account, user_id, account_id)
|
78
|
+
response = HttpClient.get(uri)
|
79
|
+
parse response
|
80
|
+
end
|
81
|
+
|
82
|
+
# Retrieves pages of a user's bank accounts. Allows
|
83
|
+
# configuration of paging and sorting parameters by
|
84
|
+
# yielding a filtering object to a provided block.
|
85
|
+
# When no filters are specified, will retrieve the
|
86
|
+
# first page of 10 newest results.
|
87
|
+
#
|
88
|
+
# Allowed +FilterRequest+ params:
|
89
|
+
# * page
|
90
|
+
# * per_page
|
91
|
+
# * sort_field and sort_direction
|
92
|
+
#
|
93
|
+
# @param +user_id+ [String] ID of the user whose bank accounts to get
|
94
|
+
# @return [Array] parsed BankAccount entity objects
|
95
|
+
def all(user_id)
|
96
|
+
uri = provide_uri(:get_accounts, user_id)
|
97
|
+
filter_request = nil
|
98
|
+
yield filter_request = FilterRequest.new if block_given?
|
99
|
+
results = HttpClient.get(uri, filter_request)
|
100
|
+
parse_results results
|
101
|
+
end
|
102
|
+
|
103
|
+
private
|
104
|
+
|
105
|
+
# Parses an array of JSON-originating hashes into the corresponding
|
106
|
+
# BankAccount entity objects.
|
107
|
+
#
|
108
|
+
# @param +results+ [Array] JSON-originating data hashes
|
109
|
+
# @return [Array] parsed BankAccount entity objects
|
110
|
+
def parse_results(results)
|
111
|
+
results.collect do |entity|
|
112
|
+
parse entity
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
# Parses a JSON-originating hash into the corresponding
|
117
|
+
# BankAccount entity object.
|
118
|
+
#
|
119
|
+
# @param +response+ [Hash] JSON-originating data hash
|
120
|
+
# @return [BankAccount] corresponding BankAccount entity object
|
121
|
+
def parse(response)
|
122
|
+
type = bank_account_type(response)
|
123
|
+
type.new.dejsonify response
|
124
|
+
end
|
125
|
+
|
126
|
+
# Asserts the type of bank account represented by a hash.
|
127
|
+
#
|
128
|
+
# @param +hash+ [Hash] source hash
|
129
|
+
# @return [Class] type of bank account represented by the hash
|
130
|
+
def bank_account_type(hash)
|
131
|
+
case hash['Type']
|
132
|
+
when MangoModel::AccountType::IBAN.to_s
|
133
|
+
MangoModel::IbanBankAccount
|
134
|
+
when MangoModel::AccountType::US.to_s
|
135
|
+
MangoModel::UsBankAccount
|
136
|
+
when MangoModel::AccountType::CA.to_s
|
137
|
+
MangoModel::CaBankAccount
|
138
|
+
when MangoModel::AccountType::GB.to_s
|
139
|
+
MangoModel::GbBankAccount
|
140
|
+
else
|
141
|
+
MangoModel::OtherBankAccount
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
146
|
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
|
3
|
+
module MangoApi
|
4
|
+
|
5
|
+
# Provides API method delegates concerning the +BankingAlias+ entity
|
6
|
+
module BankingAliases
|
7
|
+
class << self
|
8
|
+
include UriProvider
|
9
|
+
|
10
|
+
# Creates an IBAN banking alias
|
11
|
+
#
|
12
|
+
# +BankingAlias+ properties:
|
13
|
+
# * Required:
|
14
|
+
# * credited_user_id
|
15
|
+
# * wallet_id
|
16
|
+
# * type
|
17
|
+
# * country
|
18
|
+
# * owner_name
|
19
|
+
# * active
|
20
|
+
# @param +banking_alias+ [BankingAlias] model object of banking alias to be created
|
21
|
+
# @param +wallet_id+ [String] the wallet_id
|
22
|
+
# @return [BakingAliasIBAN]
|
23
|
+
def create_iban(banking_alias, wallet_id)
|
24
|
+
uri = provide_uri(:banking_alias_create_iban, wallet_id)
|
25
|
+
response = HttpClient.post(uri, banking_alias)
|
26
|
+
parse response
|
27
|
+
end
|
28
|
+
|
29
|
+
# Retrieves a banking alias entity.
|
30
|
+
#
|
31
|
+
# @param +id+ [String] ID of the banking alias to be retrieved
|
32
|
+
# @param +banking_alias+ [BankingAlias] Whether is active or not
|
33
|
+
# @return [BankingAlias] the requested entity object
|
34
|
+
def update(id, banking_alias)
|
35
|
+
uri = provide_uri(:banking_alias_save, id)
|
36
|
+
response = HttpClient.put(uri, banking_alias)
|
37
|
+
parse response
|
38
|
+
end
|
39
|
+
|
40
|
+
# Retrieves a banking alias entity.
|
41
|
+
#
|
42
|
+
# @param +id+ [String] ID of the banking alias to be retrieved
|
43
|
+
# @return [BankingAlias] the requested entity object
|
44
|
+
def get(id)
|
45
|
+
uri = provide_uri(:banking_alias_get, id)
|
46
|
+
response = HttpClient.get(uri)
|
47
|
+
parse response
|
48
|
+
end
|
49
|
+
|
50
|
+
# Retrieves all banking alias entities corresponding to a waller.
|
51
|
+
#
|
52
|
+
# @param +id+ [String] ID of the banking alias to be retrieved
|
53
|
+
# @return [List<BankingAlias>] the requested entity object
|
54
|
+
def get_all(id)
|
55
|
+
uri = provide_uri(:banking_alias_all, id)
|
56
|
+
response = HttpClient.get(uri)
|
57
|
+
parse_results response
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
|
62
|
+
# Parses an array of JSON-originating hashes into the corresponding
|
63
|
+
# BankingAlias entity objects.
|
64
|
+
#
|
65
|
+
# @param +results+ [Array] JSON-originating data hashes
|
66
|
+
# @return [Array] parsed Mandate entity objects
|
67
|
+
def parse_results(results)
|
68
|
+
results.collect do |entity|
|
69
|
+
parse entity
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
# Parses a JSON-originating hash into the corresponding
|
74
|
+
# BankingAlias entity object.
|
75
|
+
#
|
76
|
+
# @param +response+ [Hash] JSON-originating data hash
|
77
|
+
# @return [BankingAlias] corresponding BankingAlias entity object
|
78
|
+
def parse(response)
|
79
|
+
MangoModel::BankingAlias.new.dejsonify response
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -1,152 +1,152 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
require_relative '../../model/request/complete_registration_request'
|
3
|
-
require_relative '../../model/request/deactivation_request'
|
4
|
-
|
5
|
-
module MangoApi
|
6
|
-
|
7
|
-
# Provides API method delegates concerning the +Card+ entity
|
8
|
-
module Cards
|
9
|
-
class << self
|
10
|
-
include UriProvider
|
11
|
-
|
12
|
-
# Creates a new card registration entity.
|
13
|
-
#
|
14
|
-
# +CardRegistration+ properties:
|
15
|
-
# * Required
|
16
|
-
# * user_id
|
17
|
-
# * currency
|
18
|
-
# * Optional
|
19
|
-
# * tag
|
20
|
-
# * card_type
|
21
|
-
#
|
22
|
-
# @param +card_registration+ [CardRegistration] model object of
|
23
|
-
# card registration to be created
|
24
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
25
|
-
# @return [CardRegistration] the newly-created CardRegistration entity
|
26
|
-
# object
|
27
|
-
def create_registration(card_registration, id_key = nil)
|
28
|
-
uri = provide_uri(:create_card_registration)
|
29
|
-
response = HttpClient.post(uri, card_registration, id_key)
|
30
|
-
parse_registration response
|
31
|
-
end
|
32
|
-
|
33
|
-
# Allows completion of a card registration with the registration
|
34
|
-
# data received from the Tokenization Server.
|
35
|
-
#
|
36
|
-
# @param +registration_data+ [String] registration data from the
|
37
|
-
# Tokenization Server
|
38
|
-
# @return [CardRegistration] the completed CardRegistration entity
|
39
|
-
# object
|
40
|
-
def complete_registration(id, registration_data)
|
41
|
-
uri = provide_uri(:complete_card_registration, id)
|
42
|
-
request = CompleteRegistrationRequest.new(registration_data)
|
43
|
-
response = HttpClient.put(uri, request)
|
44
|
-
parse_registration response
|
45
|
-
end
|
46
|
-
|
47
|
-
# Retrieves a card registration entity.
|
48
|
-
#
|
49
|
-
# @param +id+ [String] ID of the card registration to retrieve
|
50
|
-
# @return [CardRegistration] the requested entity object
|
51
|
-
def get_registration(id)
|
52
|
-
uri = provide_uri(:get_card_registration, id)
|
53
|
-
response = HttpClient.get(uri)
|
54
|
-
parse_registration response
|
55
|
-
end
|
56
|
-
|
57
|
-
# Retrieves a card entity.
|
58
|
-
#
|
59
|
-
# @param +id+ [String] ID of the card entity to retrieve
|
60
|
-
# @return [Card] the requested Card entity object
|
61
|
-
def get(id)
|
62
|
-
uri = provide_uri(:get_card, id)
|
63
|
-
response = HttpClient.get(uri)
|
64
|
-
parse_card response
|
65
|
-
end
|
66
|
-
|
67
|
-
# Retrieves pages of a user's card entities.
|
68
|
-
# Allows configuration of paging and sorting parameters
|
69
|
-
# by yielding a filtering object to a provided block. When
|
70
|
-
# no filters are specified, will retrieve the
|
71
|
-
# first page of 10 newest results.
|
72
|
-
#
|
73
|
-
# Allowed +FilterRequest+ params:
|
74
|
-
# * page
|
75
|
-
# * per_page
|
76
|
-
# * sort_field and sort_direction
|
77
|
-
#
|
78
|
-
# @param +id+ [String] ID of the user whose cards to retrieve
|
79
|
-
# @return [Array] array of hashed card entities corresponding
|
80
|
-
# to provided filters
|
81
|
-
def of_user(id)
|
82
|
-
uri = provide_uri(:get_users_cards, id)
|
83
|
-
filter_request = nil
|
84
|
-
yield filter_request = FilterRequest.new if block_given?
|
85
|
-
results = HttpClient.get(uri, filter_request)
|
86
|
-
parse_cards results
|
87
|
-
end
|
88
|
-
|
89
|
-
# Retrieves pages of card entities corresponding to a
|
90
|
-
# certain fingerprint. The Fingerprint is a unique
|
91
|
-
# hash key uniquely generated per 16-digit card number.
|
92
|
-
#
|
93
|
-
# Allowed +FilterRequest+ params:
|
94
|
-
# * page
|
95
|
-
# * per_page
|
96
|
-
# * sort_field and sort_direction
|
97
|
-
#
|
98
|
-
# @param +fingerprint+ [String] uniquely hashed card number
|
99
|
-
# which to search for
|
100
|
-
# @return [Array] array of hashed card entities corresponding
|
101
|
-
# to provided filters
|
102
|
-
def with_fingerprint(fingerprint)
|
103
|
-
uri = provide_uri(:get_cards_by_fingerprint, fingerprint)
|
104
|
-
filter_request = nil
|
105
|
-
yield filter_request = FilterRequest.new if block_given?
|
106
|
-
results = HttpClient.get(uri, filter_request)
|
107
|
-
parse_cards results
|
108
|
-
end
|
109
|
-
|
110
|
-
# Deactivates the card entity specified by an id.
|
111
|
-
#
|
112
|
-
# @param +id+ [String] ID of the card to deactivate
|
113
|
-
# @return [Card] the deactivated card entity object
|
114
|
-
def deactivate(id)
|
115
|
-
uri = provide_uri(:deactivate_card, id)
|
116
|
-
response = HttpClient.put(uri, DeactivationRequest.new)
|
117
|
-
parse_card response
|
118
|
-
end
|
119
|
-
|
120
|
-
private
|
121
|
-
|
122
|
-
# Parses a JSON-originating hash into the corresponding
|
123
|
-
# CardRegistration entity object.
|
124
|
-
#
|
125
|
-
# @param +response+ [Hash] JSON-originating data hash
|
126
|
-
# @return [CardRegistration] corresponding CardRegistration entity object
|
127
|
-
def parse_registration(response)
|
128
|
-
MangoModel::CardRegistration.new.dejsonify response
|
129
|
-
end
|
130
|
-
|
131
|
-
# Parses a JSON-originating hash into the corresponding
|
132
|
-
# Card entity object.
|
133
|
-
#
|
134
|
-
# @param +response+ [Hash] JSON-originating data hash
|
135
|
-
# @return [Card] corresponding Card entity object
|
136
|
-
def parse_card(response)
|
137
|
-
MangoModel::Card.new.dejsonify response
|
138
|
-
end
|
139
|
-
|
140
|
-
# Parses an array of JSON-originating hashes into the corresponding
|
141
|
-
# Card entity objects.
|
142
|
-
#
|
143
|
-
# @param +results+ [Array] JSON-originating data hashes
|
144
|
-
# @return [Array] parsed Card entity objects
|
145
|
-
def parse_cards(results)
|
146
|
-
results.collect do |entity|
|
147
|
-
parse_card entity
|
148
|
-
end
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
require_relative '../../model/request/complete_registration_request'
|
3
|
+
require_relative '../../model/request/deactivation_request'
|
4
|
+
|
5
|
+
module MangoApi
|
6
|
+
|
7
|
+
# Provides API method delegates concerning the +Card+ entity
|
8
|
+
module Cards
|
9
|
+
class << self
|
10
|
+
include UriProvider
|
11
|
+
|
12
|
+
# Creates a new card registration entity.
|
13
|
+
#
|
14
|
+
# +CardRegistration+ properties:
|
15
|
+
# * Required
|
16
|
+
# * user_id
|
17
|
+
# * currency
|
18
|
+
# * Optional
|
19
|
+
# * tag
|
20
|
+
# * card_type
|
21
|
+
#
|
22
|
+
# @param +card_registration+ [CardRegistration] model object of
|
23
|
+
# card registration to be created
|
24
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
25
|
+
# @return [CardRegistration] the newly-created CardRegistration entity
|
26
|
+
# object
|
27
|
+
def create_registration(card_registration, id_key = nil)
|
28
|
+
uri = provide_uri(:create_card_registration)
|
29
|
+
response = HttpClient.post(uri, card_registration, id_key)
|
30
|
+
parse_registration response
|
31
|
+
end
|
32
|
+
|
33
|
+
# Allows completion of a card registration with the registration
|
34
|
+
# data received from the Tokenization Server.
|
35
|
+
#
|
36
|
+
# @param +registration_data+ [String] registration data from the
|
37
|
+
# Tokenization Server
|
38
|
+
# @return [CardRegistration] the completed CardRegistration entity
|
39
|
+
# object
|
40
|
+
def complete_registration(id, registration_data)
|
41
|
+
uri = provide_uri(:complete_card_registration, id)
|
42
|
+
request = CompleteRegistrationRequest.new(registration_data)
|
43
|
+
response = HttpClient.put(uri, request)
|
44
|
+
parse_registration response
|
45
|
+
end
|
46
|
+
|
47
|
+
# Retrieves a card registration entity.
|
48
|
+
#
|
49
|
+
# @param +id+ [String] ID of the card registration to retrieve
|
50
|
+
# @return [CardRegistration] the requested entity object
|
51
|
+
def get_registration(id)
|
52
|
+
uri = provide_uri(:get_card_registration, id)
|
53
|
+
response = HttpClient.get(uri)
|
54
|
+
parse_registration response
|
55
|
+
end
|
56
|
+
|
57
|
+
# Retrieves a card entity.
|
58
|
+
#
|
59
|
+
# @param +id+ [String] ID of the card entity to retrieve
|
60
|
+
# @return [Card] the requested Card entity object
|
61
|
+
def get(id)
|
62
|
+
uri = provide_uri(:get_card, id)
|
63
|
+
response = HttpClient.get(uri)
|
64
|
+
parse_card response
|
65
|
+
end
|
66
|
+
|
67
|
+
# Retrieves pages of a user's card entities.
|
68
|
+
# Allows configuration of paging and sorting parameters
|
69
|
+
# by yielding a filtering object to a provided block. When
|
70
|
+
# no filters are specified, will retrieve the
|
71
|
+
# first page of 10 newest results.
|
72
|
+
#
|
73
|
+
# Allowed +FilterRequest+ params:
|
74
|
+
# * page
|
75
|
+
# * per_page
|
76
|
+
# * sort_field and sort_direction
|
77
|
+
#
|
78
|
+
# @param +id+ [String] ID of the user whose cards to retrieve
|
79
|
+
# @return [Array] array of hashed card entities corresponding
|
80
|
+
# to provided filters
|
81
|
+
def of_user(id)
|
82
|
+
uri = provide_uri(:get_users_cards, id)
|
83
|
+
filter_request = nil
|
84
|
+
yield filter_request = FilterRequest.new if block_given?
|
85
|
+
results = HttpClient.get(uri, filter_request)
|
86
|
+
parse_cards results
|
87
|
+
end
|
88
|
+
|
89
|
+
# Retrieves pages of card entities corresponding to a
|
90
|
+
# certain fingerprint. The Fingerprint is a unique
|
91
|
+
# hash key uniquely generated per 16-digit card number.
|
92
|
+
#
|
93
|
+
# Allowed +FilterRequest+ params:
|
94
|
+
# * page
|
95
|
+
# * per_page
|
96
|
+
# * sort_field and sort_direction
|
97
|
+
#
|
98
|
+
# @param +fingerprint+ [String] uniquely hashed card number
|
99
|
+
# which to search for
|
100
|
+
# @return [Array] array of hashed card entities corresponding
|
101
|
+
# to provided filters
|
102
|
+
def with_fingerprint(fingerprint)
|
103
|
+
uri = provide_uri(:get_cards_by_fingerprint, fingerprint)
|
104
|
+
filter_request = nil
|
105
|
+
yield filter_request = FilterRequest.new if block_given?
|
106
|
+
results = HttpClient.get(uri, filter_request)
|
107
|
+
parse_cards results
|
108
|
+
end
|
109
|
+
|
110
|
+
# Deactivates the card entity specified by an id.
|
111
|
+
#
|
112
|
+
# @param +id+ [String] ID of the card to deactivate
|
113
|
+
# @return [Card] the deactivated card entity object
|
114
|
+
def deactivate(id)
|
115
|
+
uri = provide_uri(:deactivate_card, id)
|
116
|
+
response = HttpClient.put(uri, DeactivationRequest.new)
|
117
|
+
parse_card response
|
118
|
+
end
|
119
|
+
|
120
|
+
private
|
121
|
+
|
122
|
+
# Parses a JSON-originating hash into the corresponding
|
123
|
+
# CardRegistration entity object.
|
124
|
+
#
|
125
|
+
# @param +response+ [Hash] JSON-originating data hash
|
126
|
+
# @return [CardRegistration] corresponding CardRegistration entity object
|
127
|
+
def parse_registration(response)
|
128
|
+
MangoModel::CardRegistration.new.dejsonify response
|
129
|
+
end
|
130
|
+
|
131
|
+
# Parses a JSON-originating hash into the corresponding
|
132
|
+
# Card entity object.
|
133
|
+
#
|
134
|
+
# @param +response+ [Hash] JSON-originating data hash
|
135
|
+
# @return [Card] corresponding Card entity object
|
136
|
+
def parse_card(response)
|
137
|
+
MangoModel::Card.new.dejsonify response
|
138
|
+
end
|
139
|
+
|
140
|
+
# Parses an array of JSON-originating hashes into the corresponding
|
141
|
+
# Card entity objects.
|
142
|
+
#
|
143
|
+
# @param +results+ [Array] JSON-originating data hashes
|
144
|
+
# @return [Array] parsed Card entity objects
|
145
|
+
def parse_cards(results)
|
146
|
+
results.collect do |entity|
|
147
|
+
parse_card entity
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
152
|
end
|