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,151 +1,151 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
require_relative '../../model/report_filter'
|
3
|
-
|
4
|
-
module MangoApi
|
5
|
-
|
6
|
-
# Provides API method delegates concerning the +Report+ entity
|
7
|
-
module Reports
|
8
|
-
class << self
|
9
|
-
include UriProvider
|
10
|
-
|
11
|
-
# Requests creation of a transaction report.
|
12
|
-
# Yields a +ReportFilter+ object for caller to specify
|
13
|
-
# filtering parameters in a provided block.
|
14
|
-
#
|
15
|
-
# +Report+ properties:
|
16
|
-
# * Optional
|
17
|
-
# * tag
|
18
|
-
# * callback_url
|
19
|
-
# * download_format
|
20
|
-
# * sort
|
21
|
-
# * preview
|
22
|
-
# * columns
|
23
|
-
#
|
24
|
-
# Available +columns+ values: Alias, AuthorId,
|
25
|
-
# BankAccountId, BankWireRef, CardId, CardType, Country,
|
26
|
-
# CreationDate, CreditedFundsAmount, CreditedFundsCurrency,
|
27
|
-
# CreditedUserId, CreditedWalletId, Culture, DebitedFundsAmount,
|
28
|
-
# DebitedFundsCurrency, DebitedWalletId, DeclaredDebitedFundsAmount,
|
29
|
-
# DeclaredDebitedFundsCurrency, DeclaredFeesAmount, DeclaredFeesCurrency,
|
30
|
-
# ExecutionDate, ExecutionType, ExpirationDate, FeesAmount, FeesCurrency,
|
31
|
-
# Id, Nature, PaymentType, PreauthorizationId, ResultCode, ResultMessage,
|
32
|
-
# Status, Tag, Type, WireReference
|
33
|
-
#
|
34
|
-
# Allowed +ReportFilter+ params:
|
35
|
-
# * after_date
|
36
|
-
# * before_date
|
37
|
-
# * type
|
38
|
-
# * status
|
39
|
-
# * nature
|
40
|
-
# * min_debited_funds_amount
|
41
|
-
# * min_debited_funds_currency
|
42
|
-
# * max_debited_funds_amount
|
43
|
-
# * max_debited_funds_currency
|
44
|
-
# * min_fees_amount
|
45
|
-
# * min_fees_currency
|
46
|
-
# * max_fees_amount
|
47
|
-
# * max_fees_currency
|
48
|
-
# * author_id
|
49
|
-
# * wallet_id
|
50
|
-
#
|
51
|
-
# @param +report+ [Report] model object of the report to be created
|
52
|
-
# @return [Report] the newly-created Report entity object
|
53
|
-
def create_for_transactions(report)
|
54
|
-
uri = provide_uri(:create_transaction_report)
|
55
|
-
report.filters = ReportFilter.new unless report.filters
|
56
|
-
yield report.filters if block_given?
|
57
|
-
response = HttpClient.post(uri, report)
|
58
|
-
parse response
|
59
|
-
end
|
60
|
-
|
61
|
-
# Requests creation of a wallet report.
|
62
|
-
# Yields a +ReportFilter+ object for caller to specify
|
63
|
-
# filtering parameters in a provided block.
|
64
|
-
#
|
65
|
-
# +Report+ properties:
|
66
|
-
# * Optional
|
67
|
-
# * tag
|
68
|
-
# * callback_url
|
69
|
-
# * download_format
|
70
|
-
# * sort
|
71
|
-
# * preview
|
72
|
-
# * columns
|
73
|
-
#
|
74
|
-
# Available +columns+ values: Id, Tag, CreationDate, Owners, Description,
|
75
|
-
# BalanceAmount, BalanceCurrency, Currency, FundsType
|
76
|
-
#
|
77
|
-
# Allowed +FilterRequest+ params:
|
78
|
-
# * after_date
|
79
|
-
# * before_date
|
80
|
-
# * owner_id
|
81
|
-
# * currency
|
82
|
-
# * min_balance_amount
|
83
|
-
# * min_balance_currency
|
84
|
-
# * max_balance_amount
|
85
|
-
# * max_balance_currency
|
86
|
-
#
|
87
|
-
# @param +report+ [Report] model object of the report to be created
|
88
|
-
# @return [Report] the newly-created Report entity object
|
89
|
-
def create_for_wallets(report)
|
90
|
-
uri = provide_uri(:create_wallet_report)
|
91
|
-
report.filters = ReportFilter.new unless report.filters
|
92
|
-
yield report.filters if block_given?
|
93
|
-
response = HttpClient.post(uri, report)
|
94
|
-
parse response
|
95
|
-
end
|
96
|
-
|
97
|
-
# Retrieves a report entity.
|
98
|
-
#
|
99
|
-
# @param +id+ [String] ID of the report to retrieve
|
100
|
-
# @return [Report] the requested Report entity object
|
101
|
-
def get(id)
|
102
|
-
uri = provide_uri(:get_report, id)
|
103
|
-
response = HttpClient.get(uri)
|
104
|
-
parse response
|
105
|
-
end
|
106
|
-
|
107
|
-
# Retrieves report entities. Allows configuration of paging and
|
108
|
-
# sorting parameters by yielding a filtering object to a provided
|
109
|
-
# block. When no filters are specified, will retrieve the first
|
110
|
-
# page of 10 newest results.
|
111
|
-
#
|
112
|
-
# Allowed +FilterRequest+ params:
|
113
|
-
# * page
|
114
|
-
# * per_page
|
115
|
-
# * sort_field and sort_direction
|
116
|
-
# * before_date
|
117
|
-
# * after_date
|
118
|
-
#
|
119
|
-
# @return [Array] corresponding Report entity objects
|
120
|
-
def all
|
121
|
-
uri = provide_uri(:get_reports)
|
122
|
-
filter_request = nil
|
123
|
-
yield filter_request = FilterRequest.new if block_given?
|
124
|
-
results = HttpClient.get(uri, filter_request)
|
125
|
-
parse_results results
|
126
|
-
end
|
127
|
-
|
128
|
-
private
|
129
|
-
|
130
|
-
# Parses an array of JSON-originating hashes into the corresponding
|
131
|
-
# Report entity objects.
|
132
|
-
#
|
133
|
-
# @param +results+ [Array] JSON-originating data hashes
|
134
|
-
# @return [Array] parsed Report entity objects
|
135
|
-
def parse_results(results)
|
136
|
-
results.collect do |entity|
|
137
|
-
parse entity
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
# Parses a JSON-originating hash into the corresponding
|
142
|
-
# Report entity object.
|
143
|
-
#
|
144
|
-
# @param +response+ [Hash] JSON-originating data hash
|
145
|
-
# @return [Report] corresponding Report entity object
|
146
|
-
def parse(response)
|
147
|
-
MangoModel::Report.new.dejsonify response
|
148
|
-
end
|
149
|
-
end
|
150
|
-
end
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
require_relative '../../model/report_filter'
|
3
|
+
|
4
|
+
module MangoApi
|
5
|
+
|
6
|
+
# Provides API method delegates concerning the +Report+ entity
|
7
|
+
module Reports
|
8
|
+
class << self
|
9
|
+
include UriProvider
|
10
|
+
|
11
|
+
# Requests creation of a transaction report.
|
12
|
+
# Yields a +ReportFilter+ object for caller to specify
|
13
|
+
# filtering parameters in a provided block.
|
14
|
+
#
|
15
|
+
# +Report+ properties:
|
16
|
+
# * Optional
|
17
|
+
# * tag
|
18
|
+
# * callback_url
|
19
|
+
# * download_format
|
20
|
+
# * sort
|
21
|
+
# * preview
|
22
|
+
# * columns
|
23
|
+
#
|
24
|
+
# Available +columns+ values: Alias, AuthorId,
|
25
|
+
# BankAccountId, BankWireRef, CardId, CardType, Country,
|
26
|
+
# CreationDate, CreditedFundsAmount, CreditedFundsCurrency,
|
27
|
+
# CreditedUserId, CreditedWalletId, Culture, DebitedFundsAmount,
|
28
|
+
# DebitedFundsCurrency, DebitedWalletId, DeclaredDebitedFundsAmount,
|
29
|
+
# DeclaredDebitedFundsCurrency, DeclaredFeesAmount, DeclaredFeesCurrency,
|
30
|
+
# ExecutionDate, ExecutionType, ExpirationDate, FeesAmount, FeesCurrency,
|
31
|
+
# Id, Nature, PaymentType, PreauthorizationId, ResultCode, ResultMessage,
|
32
|
+
# Status, Tag, Type, WireReference
|
33
|
+
#
|
34
|
+
# Allowed +ReportFilter+ params:
|
35
|
+
# * after_date
|
36
|
+
# * before_date
|
37
|
+
# * type
|
38
|
+
# * status
|
39
|
+
# * nature
|
40
|
+
# * min_debited_funds_amount
|
41
|
+
# * min_debited_funds_currency
|
42
|
+
# * max_debited_funds_amount
|
43
|
+
# * max_debited_funds_currency
|
44
|
+
# * min_fees_amount
|
45
|
+
# * min_fees_currency
|
46
|
+
# * max_fees_amount
|
47
|
+
# * max_fees_currency
|
48
|
+
# * author_id
|
49
|
+
# * wallet_id
|
50
|
+
#
|
51
|
+
# @param +report+ [Report] model object of the report to be created
|
52
|
+
# @return [Report] the newly-created Report entity object
|
53
|
+
def create_for_transactions(report)
|
54
|
+
uri = provide_uri(:create_transaction_report)
|
55
|
+
report.filters = ReportFilter.new unless report.filters
|
56
|
+
yield report.filters if block_given?
|
57
|
+
response = HttpClient.post(uri, report)
|
58
|
+
parse response
|
59
|
+
end
|
60
|
+
|
61
|
+
# Requests creation of a wallet report.
|
62
|
+
# Yields a +ReportFilter+ object for caller to specify
|
63
|
+
# filtering parameters in a provided block.
|
64
|
+
#
|
65
|
+
# +Report+ properties:
|
66
|
+
# * Optional
|
67
|
+
# * tag
|
68
|
+
# * callback_url
|
69
|
+
# * download_format
|
70
|
+
# * sort
|
71
|
+
# * preview
|
72
|
+
# * columns
|
73
|
+
#
|
74
|
+
# Available +columns+ values: Id, Tag, CreationDate, Owners, Description,
|
75
|
+
# BalanceAmount, BalanceCurrency, Currency, FundsType
|
76
|
+
#
|
77
|
+
# Allowed +FilterRequest+ params:
|
78
|
+
# * after_date
|
79
|
+
# * before_date
|
80
|
+
# * owner_id
|
81
|
+
# * currency
|
82
|
+
# * min_balance_amount
|
83
|
+
# * min_balance_currency
|
84
|
+
# * max_balance_amount
|
85
|
+
# * max_balance_currency
|
86
|
+
#
|
87
|
+
# @param +report+ [Report] model object of the report to be created
|
88
|
+
# @return [Report] the newly-created Report entity object
|
89
|
+
def create_for_wallets(report)
|
90
|
+
uri = provide_uri(:create_wallet_report)
|
91
|
+
report.filters = ReportFilter.new unless report.filters
|
92
|
+
yield report.filters if block_given?
|
93
|
+
response = HttpClient.post(uri, report)
|
94
|
+
parse response
|
95
|
+
end
|
96
|
+
|
97
|
+
# Retrieves a report entity.
|
98
|
+
#
|
99
|
+
# @param +id+ [String] ID of the report to retrieve
|
100
|
+
# @return [Report] the requested Report entity object
|
101
|
+
def get(id)
|
102
|
+
uri = provide_uri(:get_report, id)
|
103
|
+
response = HttpClient.get(uri)
|
104
|
+
parse response
|
105
|
+
end
|
106
|
+
|
107
|
+
# Retrieves report entities. Allows configuration of paging and
|
108
|
+
# sorting parameters by yielding a filtering object to a provided
|
109
|
+
# block. When no filters are specified, will retrieve the first
|
110
|
+
# page of 10 newest results.
|
111
|
+
#
|
112
|
+
# Allowed +FilterRequest+ params:
|
113
|
+
# * page
|
114
|
+
# * per_page
|
115
|
+
# * sort_field and sort_direction
|
116
|
+
# * before_date
|
117
|
+
# * after_date
|
118
|
+
#
|
119
|
+
# @return [Array] corresponding Report entity objects
|
120
|
+
def all
|
121
|
+
uri = provide_uri(:get_reports)
|
122
|
+
filter_request = nil
|
123
|
+
yield filter_request = FilterRequest.new if block_given?
|
124
|
+
results = HttpClient.get(uri, filter_request)
|
125
|
+
parse_results results
|
126
|
+
end
|
127
|
+
|
128
|
+
private
|
129
|
+
|
130
|
+
# Parses an array of JSON-originating hashes into the corresponding
|
131
|
+
# Report entity objects.
|
132
|
+
#
|
133
|
+
# @param +results+ [Array] JSON-originating data hashes
|
134
|
+
# @return [Array] parsed Report entity objects
|
135
|
+
def parse_results(results)
|
136
|
+
results.collect do |entity|
|
137
|
+
parse entity
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
# Parses a JSON-originating hash into the corresponding
|
142
|
+
# Report entity object.
|
143
|
+
#
|
144
|
+
# @param +response+ [Hash] JSON-originating data hash
|
145
|
+
# @return [Report] corresponding Report entity object
|
146
|
+
def parse(response)
|
147
|
+
MangoModel::Report.new.dejsonify response
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
151
|
end
|
@@ -1,32 +1,32 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
|
3
|
-
module MangoApi
|
4
|
-
|
5
|
-
# Provides API method delegates concerning the +Repudiation+ entity
|
6
|
-
module Repudiations
|
7
|
-
class << self
|
8
|
-
include UriProvider
|
9
|
-
|
10
|
-
# Retrieves a repudiation entity.
|
11
|
-
#
|
12
|
-
# @param +id+ [String] ID of the repudiation to retrieve
|
13
|
-
# @return [Repudiation] the requested Repudiation entity object
|
14
|
-
def get(id)
|
15
|
-
uri = provide_uri(:get_repudiation, id)
|
16
|
-
response = HttpClient.get(uri)
|
17
|
-
parse response
|
18
|
-
end
|
19
|
-
|
20
|
-
private
|
21
|
-
|
22
|
-
# Parses a JSON-originating hash into the corresponding
|
23
|
-
# Repudiation entity object.
|
24
|
-
#
|
25
|
-
# @param +response+ [Hash] JSON-originating data hash
|
26
|
-
# @return [Repudiation] corresponding Repudiation entity object
|
27
|
-
def parse(response)
|
28
|
-
MangoModel::Repudiation.new.dejsonify response
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
|
3
|
+
module MangoApi
|
4
|
+
|
5
|
+
# Provides API method delegates concerning the +Repudiation+ entity
|
6
|
+
module Repudiations
|
7
|
+
class << self
|
8
|
+
include UriProvider
|
9
|
+
|
10
|
+
# Retrieves a repudiation entity.
|
11
|
+
#
|
12
|
+
# @param +id+ [String] ID of the repudiation to retrieve
|
13
|
+
# @return [Repudiation] the requested Repudiation entity object
|
14
|
+
def get(id)
|
15
|
+
uri = provide_uri(:get_repudiation, id)
|
16
|
+
response = HttpClient.get(uri)
|
17
|
+
parse response
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
# Parses a JSON-originating hash into the corresponding
|
23
|
+
# Repudiation entity object.
|
24
|
+
#
|
25
|
+
# @param +response+ [Hash] JSON-originating data hash
|
26
|
+
# @return [Repudiation] corresponding Repudiation entity object
|
27
|
+
def parse(response)
|
28
|
+
MangoModel::Repudiation.new.dejsonify response
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
32
|
end
|
@@ -1,102 +1,102 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
require_relative '../../model/response_replica'
|
3
|
-
|
4
|
-
module MangoApi
|
5
|
-
|
6
|
-
# Provides API method delegates for replicating
|
7
|
-
# responses based on idempotency keys.
|
8
|
-
module Responses
|
9
|
-
class << self
|
10
|
-
include UriProvider
|
11
|
-
|
12
|
-
# Retrieves the response of a previous request by
|
13
|
-
# the idempotency key which was provided at the time.
|
14
|
-
#
|
15
|
-
# @param +id_key+ Idempotency key provided with the original request
|
16
|
-
# @return [ResponseReplica] Replica of the original response
|
17
|
-
def replicate(id_key)
|
18
|
-
uri = provide_uri(:replicate_response, id_key)
|
19
|
-
response = HttpClient.get uri
|
20
|
-
parse response
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
# Parses the received response into a corresponding object
|
26
|
-
#
|
27
|
-
# @param +response+ [Hash] hashed response
|
28
|
-
# @return [ResponseReplica] De-serialized typed response replication
|
29
|
-
def parse(response)
|
30
|
-
replica = MangoModel::ResponseReplica.new.dejsonify response
|
31
|
-
type = entity_type(replica.resource, replica.request_url)
|
32
|
-
replica.resource = type.new.dejsonify replica.resource if type
|
33
|
-
replica
|
34
|
-
end
|
35
|
-
|
36
|
-
# Asserts the effective type of entity returned
|
37
|
-
# in an API response, based on the request URL.
|
38
|
-
#
|
39
|
-
# @param +hash+ [Hash] hashed JSON response
|
40
|
-
# @param +source_url+ [String] URL from where the entity was returned
|
41
|
-
# @return [Class] actual type of the entity
|
42
|
-
def entity_type(hash, source_url)
|
43
|
-
case source_url
|
44
|
-
when %r{/reports}
|
45
|
-
MangoModel::Report
|
46
|
-
when %r{(/settlementtransfer|/settlements)}
|
47
|
-
MangoModel::SettlementTransfer
|
48
|
-
when %r{/repudiations}
|
49
|
-
MangoModel::Repudiation
|
50
|
-
when %r{(/disputes.+/documents|dispute-documents)}
|
51
|
-
MangoModel::DisputeDocument
|
52
|
-
when %r{/disputes}
|
53
|
-
MangoModel::Dispute
|
54
|
-
when %r{(/kyc/documents.+/consult|/dispute-documents.+/consult)}
|
55
|
-
MangoModel::DocumentPageConsult
|
56
|
-
when %r{/refunds}
|
57
|
-
MangoModel::Refund
|
58
|
-
when %r{/events}
|
59
|
-
MangoModel::Event
|
60
|
-
when %r{/hooks}
|
61
|
-
MangoModel::Hook
|
62
|
-
when %r{/ubodeclarations}
|
63
|
-
MangoModel::UboDeclaration
|
64
|
-
when %r{/kyc/documents}
|
65
|
-
MangoModel::KycDocument
|
66
|
-
when %r{/payouts/}
|
67
|
-
MangoModel::PayOut
|
68
|
-
when %r{/extended/}
|
69
|
-
MangoModel::PayInWebExtendedView
|
70
|
-
when %r{/mandates}
|
71
|
-
MangoModel:: Mandate
|
72
|
-
when %r{/transactions}
|
73
|
-
MangoModel::Transaction
|
74
|
-
when %r{/preauthorizations}
|
75
|
-
MangoModel::PreAuthorization
|
76
|
-
when %r{/cards}
|
77
|
-
MangoModel::Card
|
78
|
-
when %r{/cardregistrations}
|
79
|
-
MangoModel::CardRegistration
|
80
|
-
when %r{/payins}
|
81
|
-
MangoModel.pay_in_type(hash)
|
82
|
-
when %r{/transfers}
|
83
|
-
MangoModel::Transfer
|
84
|
-
when %r{/emoney}
|
85
|
-
MangoModel::EMoney
|
86
|
-
when %r{/bankaccounts}
|
87
|
-
MangoModel.bank_account_type(hash)
|
88
|
-
when %r{/clients/wallets}
|
89
|
-
MangoModel::ClientWallet
|
90
|
-
when %r{/wallets}
|
91
|
-
MangoModel::Wallet
|
92
|
-
when %r{/users}
|
93
|
-
MangoModel.user_type(hash)
|
94
|
-
when %r{/clients}
|
95
|
-
MangoModel::Client
|
96
|
-
else
|
97
|
-
raise 'Could not assert effective type for entity source: ' + source_url
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
require_relative '../../model/response_replica'
|
3
|
+
|
4
|
+
module MangoApi
|
5
|
+
|
6
|
+
# Provides API method delegates for replicating
|
7
|
+
# responses based on idempotency keys.
|
8
|
+
module Responses
|
9
|
+
class << self
|
10
|
+
include UriProvider
|
11
|
+
|
12
|
+
# Retrieves the response of a previous request by
|
13
|
+
# the idempotency key which was provided at the time.
|
14
|
+
#
|
15
|
+
# @param +id_key+ Idempotency key provided with the original request
|
16
|
+
# @return [ResponseReplica] Replica of the original response
|
17
|
+
def replicate(id_key)
|
18
|
+
uri = provide_uri(:replicate_response, id_key)
|
19
|
+
response = HttpClient.get uri
|
20
|
+
parse response
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
# Parses the received response into a corresponding object
|
26
|
+
#
|
27
|
+
# @param +response+ [Hash] hashed response
|
28
|
+
# @return [ResponseReplica] De-serialized typed response replication
|
29
|
+
def parse(response)
|
30
|
+
replica = MangoModel::ResponseReplica.new.dejsonify response
|
31
|
+
type = entity_type(replica.resource, replica.request_url)
|
32
|
+
replica.resource = type.new.dejsonify replica.resource if type
|
33
|
+
replica
|
34
|
+
end
|
35
|
+
|
36
|
+
# Asserts the effective type of entity returned
|
37
|
+
# in an API response, based on the request URL.
|
38
|
+
#
|
39
|
+
# @param +hash+ [Hash] hashed JSON response
|
40
|
+
# @param +source_url+ [String] URL from where the entity was returned
|
41
|
+
# @return [Class] actual type of the entity
|
42
|
+
def entity_type(hash, source_url)
|
43
|
+
case source_url
|
44
|
+
when %r{/reports}
|
45
|
+
MangoModel::Report
|
46
|
+
when %r{(/settlementtransfer|/settlements)}
|
47
|
+
MangoModel::SettlementTransfer
|
48
|
+
when %r{/repudiations}
|
49
|
+
MangoModel::Repudiation
|
50
|
+
when %r{(/disputes.+/documents|dispute-documents)}
|
51
|
+
MangoModel::DisputeDocument
|
52
|
+
when %r{/disputes}
|
53
|
+
MangoModel::Dispute
|
54
|
+
when %r{(/kyc/documents.+/consult|/dispute-documents.+/consult)}
|
55
|
+
MangoModel::DocumentPageConsult
|
56
|
+
when %r{/refunds}
|
57
|
+
MangoModel::Refund
|
58
|
+
when %r{/events}
|
59
|
+
MangoModel::Event
|
60
|
+
when %r{/hooks}
|
61
|
+
MangoModel::Hook
|
62
|
+
when %r{/ubodeclarations}
|
63
|
+
MangoModel::UboDeclaration
|
64
|
+
when %r{/kyc/documents}
|
65
|
+
MangoModel::KycDocument
|
66
|
+
when %r{/payouts/}
|
67
|
+
MangoModel::PayOut
|
68
|
+
when %r{/extended/}
|
69
|
+
MangoModel::PayInWebExtendedView
|
70
|
+
when %r{/mandates}
|
71
|
+
MangoModel:: Mandate
|
72
|
+
when %r{/transactions}
|
73
|
+
MangoModel::Transaction
|
74
|
+
when %r{/preauthorizations}
|
75
|
+
MangoModel::PreAuthorization
|
76
|
+
when %r{/cards}
|
77
|
+
MangoModel::Card
|
78
|
+
when %r{/cardregistrations}
|
79
|
+
MangoModel::CardRegistration
|
80
|
+
when %r{/payins}
|
81
|
+
MangoModel.pay_in_type(hash)
|
82
|
+
when %r{/transfers}
|
83
|
+
MangoModel::Transfer
|
84
|
+
when %r{/emoney}
|
85
|
+
MangoModel::EMoney
|
86
|
+
when %r{/bankaccounts}
|
87
|
+
MangoModel.bank_account_type(hash)
|
88
|
+
when %r{/clients/wallets}
|
89
|
+
MangoModel::ClientWallet
|
90
|
+
when %r{/wallets}
|
91
|
+
MangoModel::Wallet
|
92
|
+
when %r{/users}
|
93
|
+
MangoModel.user_type(hash)
|
94
|
+
when %r{/clients}
|
95
|
+
MangoModel::Client
|
96
|
+
else
|
97
|
+
raise 'Could not assert effective type for entity source: ' + source_url
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
102
|
end
|