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,187 +1,187 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
require_relative '../../model/request/filter_request'
|
3
|
-
|
4
|
-
module MangoApi
|
5
|
-
|
6
|
-
# Provides API method delegates concerning the +Dispute+ entity
|
7
|
-
module Disputes
|
8
|
-
class << self
|
9
|
-
include UriProvider
|
10
|
-
|
11
|
-
# Updates the dispute entity identifiable by the provided
|
12
|
-
# dispute object's ID.
|
13
|
-
#
|
14
|
-
# +Dispute+ optional properties:
|
15
|
-
# * tag
|
16
|
-
#
|
17
|
-
# @param +dispute+ [Dispute] dispute object with corresponding ID
|
18
|
-
# and updated data
|
19
|
-
# @return [Dispute] the updated Dispute entity object
|
20
|
-
def update(dispute)
|
21
|
-
uri = provide_uri(:update_dispute, dispute.id)
|
22
|
-
response = HttpClient.put(uri, dispute)
|
23
|
-
parse response
|
24
|
-
end
|
25
|
-
|
26
|
-
# Closes a dispute, an optional action which effectively
|
27
|
-
# confirms that the dispute will not be contested.
|
28
|
-
#
|
29
|
-
# @param +id+ [String] ID of the dispute to close
|
30
|
-
# @return [Dispute] the closed Dispute entity object
|
31
|
-
def close(id)
|
32
|
-
uri = provide_uri(:close_dispute, id)
|
33
|
-
response = HttpClient.put(uri, MangoModel::Dispute.new)
|
34
|
-
parse response
|
35
|
-
end
|
36
|
-
|
37
|
-
# Contests a dispute entity.
|
38
|
-
#
|
39
|
-
# @param +dispute+ [Dispute] the dispute object
|
40
|
-
# @return [Dispute] the contested Dispute entity object
|
41
|
-
def submit(dispute)
|
42
|
-
uri = provide_uri(:submit_dispute, dispute.id)
|
43
|
-
response = HttpClient.put(uri, dispute)
|
44
|
-
parse response
|
45
|
-
end
|
46
|
-
|
47
|
-
# Re-submits a dispute entity if it is reopened requiring
|
48
|
-
# more documents.
|
49
|
-
#
|
50
|
-
# @param +id+ [String] ID of the dispute to re-submit
|
51
|
-
# @return [Dispute] the re-submitted Dispute entity object
|
52
|
-
def resubmit(id)
|
53
|
-
uri = provide_uri(:resubmit_dispute, id)
|
54
|
-
response = HttpClient.put(uri, MangoModel::Dispute.new)
|
55
|
-
parse response
|
56
|
-
end
|
57
|
-
|
58
|
-
# Retrieves a dispute entity.
|
59
|
-
#
|
60
|
-
# @param +id+ [String] ID of the dispute to retrieve
|
61
|
-
# @return [Dispute] the requested Dispute entity object
|
62
|
-
def get(id)
|
63
|
-
uri = provide_uri(:get_dispute, id)
|
64
|
-
response = HttpClient.get(uri)
|
65
|
-
parse response
|
66
|
-
end
|
67
|
-
|
68
|
-
# Retrieves dispute entities belonging to a certain user.
|
69
|
-
# Allows configuration of paging and sorting parameters by
|
70
|
-
# yielding a filtering object to a provided block. When no
|
71
|
-
# filters are specified, will retrieve the first page of
|
72
|
-
# 10 newest results.
|
73
|
-
#
|
74
|
-
# Allowed +FilterRequest+ params:
|
75
|
-
# * page
|
76
|
-
# * per_page
|
77
|
-
# * sort_field and sort_direction
|
78
|
-
# * before_date
|
79
|
-
# * after_date
|
80
|
-
# * dispute_type
|
81
|
-
# * status
|
82
|
-
#
|
83
|
-
# @param +id+ [String] ID of the user whose disputes to retrieve
|
84
|
-
# @return [Array] corresponding Dispute entity object
|
85
|
-
def of_user(id)
|
86
|
-
uri = provide_uri(:get_users_disputes, id)
|
87
|
-
filter_request = nil
|
88
|
-
yield filter_request = FilterRequest.new if block_given?
|
89
|
-
results = HttpClient.get(uri, filter_request)
|
90
|
-
parse_results results
|
91
|
-
end
|
92
|
-
|
93
|
-
# Retrieves dispute entities belonging to a certain wallet.
|
94
|
-
# Allows configuration of paging and sorting parameters by
|
95
|
-
# yielding a filtering object to a provided block. When no
|
96
|
-
# filters are specified, will retrieve the first page of
|
97
|
-
# 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
|
-
# * dispute_type
|
106
|
-
# * status
|
107
|
-
#
|
108
|
-
# @param +id+ [String] ID of the wallet whose disputes to retrieve
|
109
|
-
# @return [Array] corresponding Dispute entity object
|
110
|
-
def of_wallet(id)
|
111
|
-
uri = provide_uri(:get_wallets_disputes, id)
|
112
|
-
filter_request = nil
|
113
|
-
yield filter_request = FilterRequest.new if block_given?
|
114
|
-
results = HttpClient.get(uri, filter_request)
|
115
|
-
parse_results results
|
116
|
-
end
|
117
|
-
|
118
|
-
# Retrieves dispute entities that allow a settlement transfer.
|
119
|
-
# In the event of having credit following a Dispute (because
|
120
|
-
# it was lost, or the full amount wasn't contested), a settlement
|
121
|
-
# transfer can optionally be done to transfer funds from the original
|
122
|
-
# wallet to the credit wallet. A dispute allows a settlement transfer
|
123
|
-
# when there is remaining credit and when funds are still available
|
124
|
-
# in the original wallet.
|
125
|
-
#
|
126
|
-
# Allowed +FilterRequest+ params:
|
127
|
-
# * page
|
128
|
-
# * per_page
|
129
|
-
# * sort_field and sort_direction
|
130
|
-
#
|
131
|
-
# @return [Array] corresponding Dispute entity objects
|
132
|
-
def pending_settlement
|
133
|
-
uri = provide_uri(:get_disputes_pending_settlement)
|
134
|
-
filter_request = nil
|
135
|
-
yield filter_request = FilterRequest.new if block_given?
|
136
|
-
results = HttpClient.get(uri, filter_request)
|
137
|
-
parse_results results
|
138
|
-
end
|
139
|
-
|
140
|
-
# Retrieves dispute entities belonging to the current client.
|
141
|
-
# Allows configuration of paging and sorting parameters by
|
142
|
-
# yielding a filtering object to a provided block. When no
|
143
|
-
# filters are specified, will retrieve the first page of
|
144
|
-
# 10 newest results.
|
145
|
-
#
|
146
|
-
# Allowed +FilterRequest+ params:
|
147
|
-
# * page
|
148
|
-
# * per_page
|
149
|
-
# * sort_field and sort_direction
|
150
|
-
# * before_date
|
151
|
-
# * after_date
|
152
|
-
# * dispute_type
|
153
|
-
# * status
|
154
|
-
#
|
155
|
-
# @return [Array] corresponding Dispute entity objects
|
156
|
-
def all
|
157
|
-
uri = provide_uri(:get_disputes)
|
158
|
-
filter_request = nil
|
159
|
-
yield filter_request = FilterRequest.new if block_given?
|
160
|
-
results = HttpClient.get(uri, filter_request)
|
161
|
-
parse_results results
|
162
|
-
end
|
163
|
-
|
164
|
-
private
|
165
|
-
|
166
|
-
# Parses an array of JSON-originating hashes into the corresponding
|
167
|
-
# Dispute entity objects.
|
168
|
-
#
|
169
|
-
# @param +results+ [Array] JSON-originating data hashes
|
170
|
-
# @return [Array] parsed Dispute entity objects
|
171
|
-
def parse_results(results)
|
172
|
-
results.collect do |entity|
|
173
|
-
parse entity
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
# Parses a JSON-originating hash into the corresponding
|
178
|
-
# Dispute entity object.
|
179
|
-
#
|
180
|
-
# @param +response+ [Hash] JSON-originating data hash
|
181
|
-
# @return [Dispute] corresponding Dispute entity object
|
182
|
-
def parse(response)
|
183
|
-
MangoModel::Dispute.new.dejsonify response
|
184
|
-
end
|
185
|
-
end
|
186
|
-
end
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
require_relative '../../model/request/filter_request'
|
3
|
+
|
4
|
+
module MangoApi
|
5
|
+
|
6
|
+
# Provides API method delegates concerning the +Dispute+ entity
|
7
|
+
module Disputes
|
8
|
+
class << self
|
9
|
+
include UriProvider
|
10
|
+
|
11
|
+
# Updates the dispute entity identifiable by the provided
|
12
|
+
# dispute object's ID.
|
13
|
+
#
|
14
|
+
# +Dispute+ optional properties:
|
15
|
+
# * tag
|
16
|
+
#
|
17
|
+
# @param +dispute+ [Dispute] dispute object with corresponding ID
|
18
|
+
# and updated data
|
19
|
+
# @return [Dispute] the updated Dispute entity object
|
20
|
+
def update(dispute)
|
21
|
+
uri = provide_uri(:update_dispute, dispute.id)
|
22
|
+
response = HttpClient.put(uri, dispute)
|
23
|
+
parse response
|
24
|
+
end
|
25
|
+
|
26
|
+
# Closes a dispute, an optional action which effectively
|
27
|
+
# confirms that the dispute will not be contested.
|
28
|
+
#
|
29
|
+
# @param +id+ [String] ID of the dispute to close
|
30
|
+
# @return [Dispute] the closed Dispute entity object
|
31
|
+
def close(id)
|
32
|
+
uri = provide_uri(:close_dispute, id)
|
33
|
+
response = HttpClient.put(uri, MangoModel::Dispute.new)
|
34
|
+
parse response
|
35
|
+
end
|
36
|
+
|
37
|
+
# Contests a dispute entity.
|
38
|
+
#
|
39
|
+
# @param +dispute+ [Dispute] the dispute object
|
40
|
+
# @return [Dispute] the contested Dispute entity object
|
41
|
+
def submit(dispute)
|
42
|
+
uri = provide_uri(:submit_dispute, dispute.id)
|
43
|
+
response = HttpClient.put(uri, dispute)
|
44
|
+
parse response
|
45
|
+
end
|
46
|
+
|
47
|
+
# Re-submits a dispute entity if it is reopened requiring
|
48
|
+
# more documents.
|
49
|
+
#
|
50
|
+
# @param +id+ [String] ID of the dispute to re-submit
|
51
|
+
# @return [Dispute] the re-submitted Dispute entity object
|
52
|
+
def resubmit(id)
|
53
|
+
uri = provide_uri(:resubmit_dispute, id)
|
54
|
+
response = HttpClient.put(uri, MangoModel::Dispute.new)
|
55
|
+
parse response
|
56
|
+
end
|
57
|
+
|
58
|
+
# Retrieves a dispute entity.
|
59
|
+
#
|
60
|
+
# @param +id+ [String] ID of the dispute to retrieve
|
61
|
+
# @return [Dispute] the requested Dispute entity object
|
62
|
+
def get(id)
|
63
|
+
uri = provide_uri(:get_dispute, id)
|
64
|
+
response = HttpClient.get(uri)
|
65
|
+
parse response
|
66
|
+
end
|
67
|
+
|
68
|
+
# Retrieves dispute entities belonging to a certain user.
|
69
|
+
# Allows configuration of paging and sorting parameters by
|
70
|
+
# yielding a filtering object to a provided block. When no
|
71
|
+
# filters are specified, will retrieve the first page of
|
72
|
+
# 10 newest results.
|
73
|
+
#
|
74
|
+
# Allowed +FilterRequest+ params:
|
75
|
+
# * page
|
76
|
+
# * per_page
|
77
|
+
# * sort_field and sort_direction
|
78
|
+
# * before_date
|
79
|
+
# * after_date
|
80
|
+
# * dispute_type
|
81
|
+
# * status
|
82
|
+
#
|
83
|
+
# @param +id+ [String] ID of the user whose disputes to retrieve
|
84
|
+
# @return [Array] corresponding Dispute entity object
|
85
|
+
def of_user(id)
|
86
|
+
uri = provide_uri(:get_users_disputes, id)
|
87
|
+
filter_request = nil
|
88
|
+
yield filter_request = FilterRequest.new if block_given?
|
89
|
+
results = HttpClient.get(uri, filter_request)
|
90
|
+
parse_results results
|
91
|
+
end
|
92
|
+
|
93
|
+
# Retrieves dispute entities belonging to a certain wallet.
|
94
|
+
# Allows configuration of paging and sorting parameters by
|
95
|
+
# yielding a filtering object to a provided block. When no
|
96
|
+
# filters are specified, will retrieve the first page of
|
97
|
+
# 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
|
+
# * dispute_type
|
106
|
+
# * status
|
107
|
+
#
|
108
|
+
# @param +id+ [String] ID of the wallet whose disputes to retrieve
|
109
|
+
# @return [Array] corresponding Dispute entity object
|
110
|
+
def of_wallet(id)
|
111
|
+
uri = provide_uri(:get_wallets_disputes, id)
|
112
|
+
filter_request = nil
|
113
|
+
yield filter_request = FilterRequest.new if block_given?
|
114
|
+
results = HttpClient.get(uri, filter_request)
|
115
|
+
parse_results results
|
116
|
+
end
|
117
|
+
|
118
|
+
# Retrieves dispute entities that allow a settlement transfer.
|
119
|
+
# In the event of having credit following a Dispute (because
|
120
|
+
# it was lost, or the full amount wasn't contested), a settlement
|
121
|
+
# transfer can optionally be done to transfer funds from the original
|
122
|
+
# wallet to the credit wallet. A dispute allows a settlement transfer
|
123
|
+
# when there is remaining credit and when funds are still available
|
124
|
+
# in the original wallet.
|
125
|
+
#
|
126
|
+
# Allowed +FilterRequest+ params:
|
127
|
+
# * page
|
128
|
+
# * per_page
|
129
|
+
# * sort_field and sort_direction
|
130
|
+
#
|
131
|
+
# @return [Array] corresponding Dispute entity objects
|
132
|
+
def pending_settlement
|
133
|
+
uri = provide_uri(:get_disputes_pending_settlement)
|
134
|
+
filter_request = nil
|
135
|
+
yield filter_request = FilterRequest.new if block_given?
|
136
|
+
results = HttpClient.get(uri, filter_request)
|
137
|
+
parse_results results
|
138
|
+
end
|
139
|
+
|
140
|
+
# Retrieves dispute entities belonging to the current client.
|
141
|
+
# Allows configuration of paging and sorting parameters by
|
142
|
+
# yielding a filtering object to a provided block. When no
|
143
|
+
# filters are specified, will retrieve the first page of
|
144
|
+
# 10 newest results.
|
145
|
+
#
|
146
|
+
# Allowed +FilterRequest+ params:
|
147
|
+
# * page
|
148
|
+
# * per_page
|
149
|
+
# * sort_field and sort_direction
|
150
|
+
# * before_date
|
151
|
+
# * after_date
|
152
|
+
# * dispute_type
|
153
|
+
# * status
|
154
|
+
#
|
155
|
+
# @return [Array] corresponding Dispute entity objects
|
156
|
+
def all
|
157
|
+
uri = provide_uri(:get_disputes)
|
158
|
+
filter_request = nil
|
159
|
+
yield filter_request = FilterRequest.new if block_given?
|
160
|
+
results = HttpClient.get(uri, filter_request)
|
161
|
+
parse_results results
|
162
|
+
end
|
163
|
+
|
164
|
+
private
|
165
|
+
|
166
|
+
# Parses an array of JSON-originating hashes into the corresponding
|
167
|
+
# Dispute entity objects.
|
168
|
+
#
|
169
|
+
# @param +results+ [Array] JSON-originating data hashes
|
170
|
+
# @return [Array] parsed Dispute entity objects
|
171
|
+
def parse_results(results)
|
172
|
+
results.collect do |entity|
|
173
|
+
parse entity
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
# Parses a JSON-originating hash into the corresponding
|
178
|
+
# Dispute entity object.
|
179
|
+
#
|
180
|
+
# @param +response+ [Hash] JSON-originating data hash
|
181
|
+
# @return [Dispute] corresponding Dispute entity object
|
182
|
+
def parse(response)
|
183
|
+
MangoModel::Dispute.new.dejsonify response
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
187
187
|
end
|
@@ -1,42 +1,64 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
require_relative '../../model/request/currency_request'
|
3
|
-
|
4
|
-
module MangoApi
|
5
|
-
|
6
|
-
# Provides API method delegates concerning the +EMoney+ entity
|
7
|
-
module EMoney
|
8
|
-
class << self
|
9
|
-
include UriProvider
|
10
|
-
|
11
|
-
# Retrieves a user's e-money.
|
12
|
-
#
|
13
|
-
# @param +user_id+ [String] ID of the user whose e-money to retrieve
|
14
|
-
# @param +
|
15
|
-
#
|
16
|
-
#
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
#
|
33
|
-
#
|
34
|
-
#
|
35
|
-
# @param +
|
36
|
-
# @
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
require_relative '../../model/request/currency_request'
|
3
|
+
|
4
|
+
module MangoApi
|
5
|
+
|
6
|
+
# Provides API method delegates concerning the +EMoney+ entity
|
7
|
+
module EMoney
|
8
|
+
class << self
|
9
|
+
include UriProvider
|
10
|
+
|
11
|
+
# Retrieves a user's e-money for year.
|
12
|
+
#
|
13
|
+
# @param +user_id+ [String] ID of the user whose e-money to retrieve
|
14
|
+
# @param +year+ [Int] year for which to retrieve e-money
|
15
|
+
# @param +currency+ [CurrencyIso] currency in which to represent results -
|
16
|
+
# defaults to EUR.
|
17
|
+
# @return [EMoney] the specified user's EMoney entity object
|
18
|
+
def of_user_year(user_id, year, currency = nil)
|
19
|
+
uri = provide_uri(:get_users_e_money_year, user_id, year)
|
20
|
+
if currency
|
21
|
+
response = HttpClient.get_raw(uri) do |request|
|
22
|
+
HttpClient.api_headers.each {|k, v| request.add_field(k, v)}
|
23
|
+
request.body = CurrencyRequest.new(currency).jsonify!
|
24
|
+
end
|
25
|
+
else
|
26
|
+
response = HttpClient.get(uri)
|
27
|
+
end
|
28
|
+
parse response
|
29
|
+
end
|
30
|
+
|
31
|
+
# Retrieves a user's e-money for year/month.
|
32
|
+
#
|
33
|
+
# @param +user_id+ [String] ID of the user whose e-money to retrieve
|
34
|
+
# @param +year+ [Int] year for which to retrieve e-money
|
35
|
+
# @param +month+ [Int] month for which to retrieve e-money
|
36
|
+
# @param +currency+ [CurrencyIso] currency in which to represent results -
|
37
|
+
# defaults to EUR.
|
38
|
+
# @return [EMoney] the specified user's EMoney entity object
|
39
|
+
def of_user_month(user_id, year, month, currency = nil)
|
40
|
+
uri = provide_uri(:get_users_e_money_month, user_id, year, month)
|
41
|
+
if currency
|
42
|
+
response = HttpClient.get_raw(uri) do |request|
|
43
|
+
HttpClient.api_headers.each {|k, v| request.add_field(k, v)}
|
44
|
+
request.body = CurrencyRequest.new(currency).jsonify!
|
45
|
+
end
|
46
|
+
else
|
47
|
+
response = HttpClient.get(uri)
|
48
|
+
end
|
49
|
+
parse response
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
# Parses a JSON-originating hash into the corresponding
|
55
|
+
# EMoney entity object.
|
56
|
+
#
|
57
|
+
# @param +response+ [Hash] JSON-originating data hash
|
58
|
+
# @return [EMoney] corresponding EMoney entity object
|
59
|
+
def parse(response)
|
60
|
+
MangoModel::EMoney.new.dejsonify response
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
42
64
|
end
|