mangopay-v4 4.0.0
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 +7 -0
- data/.gitignore +30 -0
- data/.rspec +4 -0
- data/.rubocop.yml +2 -0
- data/.travis.yml +13 -0
- data/Gemfile +2 -0
- data/LICENSE +20 -0
- data/README.md +380 -0
- data/bin/mangopay +9 -0
- data/lib/mangopay.rb +133 -0
- data/lib/mangopay/api/api.rb +9 -0
- data/lib/mangopay/api/api_methods.rb +137 -0
- data/lib/mangopay/api/auth_token_manager.rb +173 -0
- data/lib/mangopay/api/http_client.rb +325 -0
- data/lib/mangopay/api/service/bank_accounts.rb +146 -0
- data/lib/mangopay/api/service/cards.rb +152 -0
- data/lib/mangopay/api/service/client_wallets.rb +89 -0
- data/lib/mangopay/api/service/clients.rb +68 -0
- data/lib/mangopay/api/service/dispute_documents.rb +158 -0
- data/lib/mangopay/api/service/disputes.rb +187 -0
- data/lib/mangopay/api/service/e_money.rb +42 -0
- data/lib/mangopay/api/service/events.rb +47 -0
- data/lib/mangopay/api/service/hooks.rb +93 -0
- data/lib/mangopay/api/service/kyc_documents.rb +153 -0
- data/lib/mangopay/api/service/mandates.rb +142 -0
- data/lib/mangopay/api/service/oauth_tokens.rb +25 -0
- data/lib/mangopay/api/service/pay_ins.rb +260 -0
- data/lib/mangopay/api/service/pay_outs.rb +54 -0
- data/lib/mangopay/api/service/pre_authorizations.rb +69 -0
- data/lib/mangopay/api/service/refunds.rb +62 -0
- data/lib/mangopay/api/service/reports.rb +151 -0
- data/lib/mangopay/api/service/repudiations.rb +32 -0
- data/lib/mangopay/api/service/responses.rb +102 -0
- data/lib/mangopay/api/service/settlement_transfers.rb +55 -0
- data/lib/mangopay/api/service/transactions.rb +183 -0
- data/lib/mangopay/api/service/transfers.rb +54 -0
- data/lib/mangopay/api/service/ubo_declarations.rb +70 -0
- data/lib/mangopay/api/service/users.rb +163 -0
- data/lib/mangopay/api/service/wallets.rb +99 -0
- data/lib/mangopay/api/uri_provider.rb +35 -0
- data/lib/mangopay/common/json_tag_converter.rb +68 -0
- data/lib/mangopay/common/jsonifier.rb +249 -0
- data/lib/mangopay/common/log_provider.rb +34 -0
- data/lib/mangopay/common/rate_limit_interval.rb +17 -0
- data/lib/mangopay/common/read_only_fields.rb +27 -0
- data/lib/mangopay/common/response_error.rb +61 -0
- data/lib/mangopay/common/sort_direction.rb +15 -0
- data/lib/mangopay/common/sort_field.rb +13 -0
- data/lib/mangopay/common/template_url_options.rb +9 -0
- data/lib/mangopay/configuration.rb +39 -0
- data/lib/mangopay/environment.rb +66 -0
- data/lib/mangopay/model/address.rb +27 -0
- data/lib/mangopay/model/declared_ubo.rb +21 -0
- data/lib/mangopay/model/dispute_reason.rb +15 -0
- data/lib/mangopay/model/document_page_consult.rb +15 -0
- data/lib/mangopay/model/e_money.rb +18 -0
- data/lib/mangopay/model/entity/account/bank_account.rb +26 -0
- data/lib/mangopay/model/entity/account/ca_bank_account.rb +27 -0
- data/lib/mangopay/model/entity/account/gb_bank_account.rb +21 -0
- data/lib/mangopay/model/entity/account/iban_bank_account.rb +21 -0
- data/lib/mangopay/model/entity/account/other_bank_account.rb +24 -0
- data/lib/mangopay/model/entity/account/us_bank_account.rb +24 -0
- data/lib/mangopay/model/entity/card.rb +45 -0
- data/lib/mangopay/model/entity/card_registration.rb +43 -0
- data/lib/mangopay/model/entity/client.rb +63 -0
- data/lib/mangopay/model/entity/client_wallet.rb +23 -0
- data/lib/mangopay/model/entity/dispute.rb +50 -0
- data/lib/mangopay/model/entity/dispute_document.rb +29 -0
- data/lib/mangopay/model/entity/entity_base.rb +18 -0
- data/lib/mangopay/model/entity/hook.rb +26 -0
- data/lib/mangopay/model/entity/kyc_document.rb +28 -0
- data/lib/mangopay/model/entity/mandate.rb +51 -0
- data/lib/mangopay/model/entity/pay_in/bank_wire_direct_pay_in.rb +22 -0
- data/lib/mangopay/model/entity/pay_in/card_direct_pay_in.rb +33 -0
- data/lib/mangopay/model/entity/pay_in/card_pre_authorized_pay_in.rb +13 -0
- data/lib/mangopay/model/entity/pay_in/card_web_pay_in.rb +40 -0
- data/lib/mangopay/model/entity/pay_in/direct_debit_direct_pay_in.rb +23 -0
- data/lib/mangopay/model/entity/pay_in/direct_debit_web_pay_in.rb +38 -0
- data/lib/mangopay/model/entity/pay_in/pay_in.rb +16 -0
- data/lib/mangopay/model/entity/pay_out.rb +22 -0
- data/lib/mangopay/model/entity/pre_authorization.rb +68 -0
- data/lib/mangopay/model/entity/refund.rb +18 -0
- data/lib/mangopay/model/entity/report.rb +51 -0
- data/lib/mangopay/model/entity/repudiation.rb +18 -0
- data/lib/mangopay/model/entity/settlement_transfer.rb +17 -0
- data/lib/mangopay/model/entity/transaction.rb +52 -0
- data/lib/mangopay/model/entity/transfer.rb +13 -0
- data/lib/mangopay/model/entity/ubo_declaration.rb +32 -0
- data/lib/mangopay/model/entity/user/legal_user.rb +53 -0
- data/lib/mangopay/model/entity/user/natural_user.rb +50 -0
- data/lib/mangopay/model/entity/user/user.rb +18 -0
- data/lib/mangopay/model/entity/wallet.rb +28 -0
- data/lib/mangopay/model/enum/account_type.rb +24 -0
- data/lib/mangopay/model/enum/card_status.rb +15 -0
- data/lib/mangopay/model/enum/card_type.rb +33 -0
- data/lib/mangopay/model/enum/card_validity.rb +19 -0
- data/lib/mangopay/model/enum/country_iso.rb +759 -0
- data/lib/mangopay/model/enum/culture_code.rb +44 -0
- data/lib/mangopay/model/enum/currency_iso.rb +552 -0
- data/lib/mangopay/model/enum/declared_ubo_refused_reason_type.rb +16 -0
- data/lib/mangopay/model/enum/declared_ubo_status.rb +18 -0
- data/lib/mangopay/model/enum/deposit_type.rb +15 -0
- data/lib/mangopay/model/enum/direct_debit_type.rb +13 -0
- data/lib/mangopay/model/enum/dispute_doc_refused_reason_type.rb +25 -0
- data/lib/mangopay/model/enum/dispute_document_type.rb +23 -0
- data/lib/mangopay/model/enum/dispute_reason_type.rb +33 -0
- data/lib/mangopay/model/enum/dispute_status.rb +21 -0
- data/lib/mangopay/model/enum/dispute_type.rb +15 -0
- data/lib/mangopay/model/enum/document_status.rb +21 -0
- data/lib/mangopay/model/enum/download_format.rb +11 -0
- data/lib/mangopay/model/enum/event_type.rb +74 -0
- data/lib/mangopay/model/enum/funds_type.rb +15 -0
- data/lib/mangopay/model/enum/hook_status.rb +13 -0
- data/lib/mangopay/model/enum/hook_validity.rb +15 -0
- data/lib/mangopay/model/enum/income_range.rb +21 -0
- data/lib/mangopay/model/enum/kyc_doc_refused_reason_type.rb +37 -0
- data/lib/mangopay/model/enum/kyc_document_type.rb +19 -0
- data/lib/mangopay/model/enum/kyc_level.rb +13 -0
- data/lib/mangopay/model/enum/legal_person_type.rb +15 -0
- data/lib/mangopay/model/enum/mandate_culture_code.rb +23 -0
- data/lib/mangopay/model/enum/mandate_execution_type.rb +11 -0
- data/lib/mangopay/model/enum/mandate_scheme.rb +13 -0
- data/lib/mangopay/model/enum/mandate_status.rb +24 -0
- data/lib/mangopay/model/enum/mandate_type.rb +11 -0
- data/lib/mangopay/model/enum/natural_user_capacity.rb +15 -0
- data/lib/mangopay/model/enum/pay_in_execution_type.rb +18 -0
- data/lib/mangopay/model/enum/pay_in_payment_type.rb +21 -0
- data/lib/mangopay/model/enum/pay_out_payment_type.rb +11 -0
- data/lib/mangopay/model/enum/payment_status.rb +21 -0
- data/lib/mangopay/model/enum/person_type.rb +15 -0
- data/lib/mangopay/model/enum/platform_type.rb +23 -0
- data/lib/mangopay/model/enum/pre_authorization_execution_type.rb +11 -0
- data/lib/mangopay/model/enum/pre_authorization_status.rb +18 -0
- data/lib/mangopay/model/enum/refund_reason_type.rb +21 -0
- data/lib/mangopay/model/enum/report_status.rb +17 -0
- data/lib/mangopay/model/enum/report_type.rb +13 -0
- data/lib/mangopay/model/enum/secure_mode.rb +16 -0
- data/lib/mangopay/model/enum/transaction_nature.rb +17 -0
- data/lib/mangopay/model/enum/transaction_status.rb +15 -0
- data/lib/mangopay/model/enum/transaction_type.rb +15 -0
- data/lib/mangopay/model/enum/ubo_declaration_refused_reason_type.rb +19 -0
- data/lib/mangopay/model/enum/ubo_declaration_status.rb +21 -0
- data/lib/mangopay/model/event.rb +18 -0
- data/lib/mangopay/model/model.rb +194 -0
- data/lib/mangopay/model/money.rb +17 -0
- data/lib/mangopay/model/pay_in_web_extended_view.rb +31 -0
- data/lib/mangopay/model/refund_reason.rb +15 -0
- data/lib/mangopay/model/report_filter.rb +83 -0
- data/lib/mangopay/model/request/cancel_request.rb +16 -0
- data/lib/mangopay/model/request/complete_registration_request.rb +13 -0
- data/lib/mangopay/model/request/currency_request.rb +13 -0
- data/lib/mangopay/model/request/deactivation_request.rb +10 -0
- data/lib/mangopay/model/request/filter_request.rb +38 -0
- data/lib/mangopay/model/request/submit_document_request.rb +14 -0
- data/lib/mangopay/model/request/submit_ubo_declaration_request.rb +14 -0
- data/lib/mangopay/model/request/upload_file_request.rb +9 -0
- data/lib/mangopay/model/response_replica.rb +27 -0
- data/lib/mangopay/util/custom_formatter.rb +12 -0
- data/lib/mangopay/util/custom_logger.rb +34 -0
- data/lib/mangopay/util/enum.rb +52 -0
- data/lib/mangopay/util/file_encoder.rb +16 -0
- data/lib/mangopay/util/non_instantiable.rb +6 -0
- data/lib/mangopay/util/storage_strategy.rb +10 -0
- data/lib/mangopay/util/void_logger.rb +6 -0
- data/mangopay.gemspec +32 -0
- data/spec/context/address_context.rb +25 -0
- data/spec/context/bank_account_context.rb +138 -0
- data/spec/context/card_context.rb +46 -0
- data/spec/context/client_context.rb +45 -0
- data/spec/context/dispute_context.rb +37 -0
- data/spec/context/dispute_document_context.rb +20 -0
- data/spec/context/hook_context.rb +16 -0
- data/spec/context/kyc_document_context.rb +23 -0
- data/spec/context/mandate_context.rb +27 -0
- data/spec/context/pay_in_context.rb +225 -0
- data/spec/context/pay_out_context.rb +39 -0
- data/spec/context/pre_authorization_context.rb +41 -0
- data/spec/context/refund_context.rb +33 -0
- data/spec/context/report_context.rb +22 -0
- data/spec/context/repudiation_context.rb +19 -0
- data/spec/context/settlement_transfer_context.rb +28 -0
- data/spec/context/transfer_context.rb +51 -0
- data/spec/context/ubo_declaration_context.rb +25 -0
- data/spec/context/user_context.rb +83 -0
- data/spec/context/wallet_context.rb +53 -0
- data/spec/mangopay/bank_accounts_spec.rb +229 -0
- data/spec/mangopay/cards_spec.rb +135 -0
- data/spec/mangopay/client_wallets_spec.rb +148 -0
- data/spec/mangopay/clients_spec.rb +55 -0
- data/spec/mangopay/configuration_spec.rb +126 -0
- data/spec/mangopay/dispute_documents_spec.rb +174 -0
- data/spec/mangopay/disputes_spec.rb +265 -0
- data/spec/mangopay/e_money_spec.rb +38 -0
- data/spec/mangopay/events_spec.rb +50 -0
- data/spec/mangopay/hooks_spec.rb +71 -0
- data/spec/mangopay/kyc_documents_spec.rb +180 -0
- data/spec/mangopay/mandates_spec.rb +219 -0
- data/spec/mangopay/oauth_tokens_spec.rb +41 -0
- data/spec/mangopay/pay_ins_spec.rb +181 -0
- data/spec/mangopay/pay_outs_spec.rb +39 -0
- data/spec/mangopay/pre_authorizations_spec.rb +58 -0
- data/spec/mangopay/refunds_spec.rb +40 -0
- data/spec/mangopay/reports_spec.rb +121 -0
- data/spec/mangopay/responses_spec.rb +295 -0
- data/spec/mangopay/settlement_transfers_spec.rb +37 -0
- data/spec/mangopay/transactions_spec.rb +233 -0
- data/spec/mangopay/transfers_spec.rb +38 -0
- data/spec/mangopay/ubo_declarations_spec.rb +65 -0
- data/spec/mangopay/users_spec.rb +146 -0
- data/spec/mangopay/wallets_spec.rb +104 -0
- data/spec/resources/logo.png +0 -0
- data/spec/resources/test_pdf.pdf +0 -0
- data/spec/spec_helper.rb +72 -0
- metadata +349 -0
@@ -0,0 +1,34 @@
|
|
1
|
+
require_relative '../util/custom_logger'
|
2
|
+
require_relative '../util/void_logger'
|
3
|
+
require_relative '../util/custom_formatter'
|
4
|
+
|
5
|
+
module MangoPay
|
6
|
+
|
7
|
+
# Provides logger objects.
|
8
|
+
class LogProvider
|
9
|
+
|
10
|
+
ENABLE_LOGGING = true
|
11
|
+
ENABLE_HTTP_LOGGING = true
|
12
|
+
|
13
|
+
class << self
|
14
|
+
|
15
|
+
def provide(context)
|
16
|
+
if needs_http_logger(context) && ENABLE_HTTP_LOGGING\
|
17
|
+
|| !(needs_http_logger(context) && ENABLE_LOGGING)
|
18
|
+
logger = CustomLogger.new(STDOUT)
|
19
|
+
logger.progname = context.name
|
20
|
+
logger.formatter = CustomFormatter.new
|
21
|
+
logger
|
22
|
+
else
|
23
|
+
VoidLogger.new
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def needs_http_logger(context)
|
30
|
+
context.name =~ /HttpClient/ || context.name =~ /Jsonifier/
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_relative '../util/enum'
|
2
|
+
|
3
|
+
module MangoPay
|
4
|
+
|
5
|
+
# MangoPay API rate limit reset times enumeration
|
6
|
+
class RateLimitInterval
|
7
|
+
extend Enum
|
8
|
+
|
9
|
+
FIFTEEN_MIN = value 'FIFTEEN_MINUTES'
|
10
|
+
|
11
|
+
THIRTY_MIN = value 'THIRTY_MINUTE'
|
12
|
+
|
13
|
+
HOUR = value 'HOUR'
|
14
|
+
|
15
|
+
DAY = value 'DAY'
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module MangoPay
|
2
|
+
|
3
|
+
# Assures that no fields which are considered read-only
|
4
|
+
# remain in a hash meant to be sent as a request body.
|
5
|
+
module ReadOnlyFields
|
6
|
+
|
7
|
+
@read_only_fields = %w[
|
8
|
+
CreationDate
|
9
|
+
]
|
10
|
+
|
11
|
+
class << self
|
12
|
+
|
13
|
+
# Checks whether any of the fields marked as read-only
|
14
|
+
# are present in the given hash. Removes those which are.
|
15
|
+
#
|
16
|
+
# @param +hash+ [Hash] hash to check for read-only fields
|
17
|
+
# @return [Hash] the given hash minus any read-only fields
|
18
|
+
#
|
19
|
+
# noinspection RubyResolve
|
20
|
+
def remove_from!(hash)
|
21
|
+
@read_only_fields.each do |field|
|
22
|
+
hash.delete field
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module MangoPay
|
2
|
+
|
3
|
+
# See http://docs.mangopay.com/api-references/response-codes-rules/
|
4
|
+
# and http://docs.mangopay.com/api-references/error-codes/
|
5
|
+
#
|
6
|
+
# Thrown from any MangoPay API call whenever
|
7
|
+
# it returns response with HTTP code != 200.
|
8
|
+
# Check @details hash for further info.
|
9
|
+
#
|
10
|
+
# Two example exceptions with details:
|
11
|
+
#
|
12
|
+
# * <MangoPay::ResponseError:
|
13
|
+
# One or several required parameters are missing or incorrect. [...]
|
14
|
+
# Email: The Email field is required.>
|
15
|
+
# {"Message"=>"One or several required parameters are missing or incorrect.
|
16
|
+
# An incorrect resource ID also raises this kind of error.",
|
17
|
+
# "Type"=>"param_error",
|
18
|
+
# "Id"=>"66936e92-3f21-4a35-b6cf-f1d17c2fb6e5",
|
19
|
+
# "Date"=>1409047252.0,
|
20
|
+
# "errors"=>{"Email"=>"The Email field is required."},
|
21
|
+
# "Code"=>"400",
|
22
|
+
# "Url"=>"/v2/sdk-unit-tests/users/natural"}
|
23
|
+
#
|
24
|
+
# * <MangoPay::ResponseError: Internal Server Error>
|
25
|
+
# {"Message"=>"Internal Server Error",
|
26
|
+
# "Type"=>"other",
|
27
|
+
# "Id"=>"7bdc5c6f-2000-4cd3-96f3-2a3fcb746f07",
|
28
|
+
# "Date"=>1409047251.0,
|
29
|
+
# "errors"=>nil,
|
30
|
+
# "Code"=>"500",
|
31
|
+
# "Url"=>"/v2/sdk-unit-tests/payins/3380640/refunds"}
|
32
|
+
class ResponseError < StandardError
|
33
|
+
|
34
|
+
attr_reader :request_url, :code, :details
|
35
|
+
|
36
|
+
def initialize(request_url, code, details)
|
37
|
+
@request_url = request_url
|
38
|
+
@code = code
|
39
|
+
@details = details
|
40
|
+
super(message) if message
|
41
|
+
end
|
42
|
+
|
43
|
+
def type
|
44
|
+
@details['Type'] if @details
|
45
|
+
end
|
46
|
+
|
47
|
+
def errors
|
48
|
+
@details['errors'] if @details
|
49
|
+
end
|
50
|
+
|
51
|
+
def message
|
52
|
+
return @message if @message
|
53
|
+
msg = @details ? @details['Message'] : ''
|
54
|
+
if errors && errors.is_a?(Hash)
|
55
|
+
msg += errors.sort.map { |k, v| "\n#{k}: #{v}" }.join
|
56
|
+
end
|
57
|
+
@message = msg || "#{@code} #{@details['error']}"
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative '../../../lib/mangopay/util/enum'
|
2
|
+
|
3
|
+
module MangoPay
|
4
|
+
|
5
|
+
# Enumeration of sorting directions available for sorting API response results
|
6
|
+
class SortDirection
|
7
|
+
extend Enum
|
8
|
+
|
9
|
+
# Ascending sort direction
|
10
|
+
ASC = value 'ASC'
|
11
|
+
|
12
|
+
# Descending sort direction
|
13
|
+
DESC = value 'DESC'
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module MangoPay
|
2
|
+
|
3
|
+
# Top-level configuration details
|
4
|
+
class Configuration
|
5
|
+
|
6
|
+
# [true/false] True if the sandbox environment should be used
|
7
|
+
attr_accessor :preproduction
|
8
|
+
|
9
|
+
# [String] Root URL to use for requests
|
10
|
+
attr_accessor :root_url
|
11
|
+
|
12
|
+
# [String] Your client ID
|
13
|
+
attr_accessor :client_id
|
14
|
+
|
15
|
+
# [String] Your client passphrase
|
16
|
+
attr_accessor :client_passphrase
|
17
|
+
|
18
|
+
# [String] Path to directory in which to store authorization token
|
19
|
+
# If nil, tokens will be stored in-memory.
|
20
|
+
attr_accessor :temp_dir
|
21
|
+
|
22
|
+
# [String] Path for logging file
|
23
|
+
attr_accessor :log_dir
|
24
|
+
|
25
|
+
# [Integer] Number of milliseconds after which to timeout requests
|
26
|
+
attr_accessor :http_timeout
|
27
|
+
|
28
|
+
def initialize
|
29
|
+
self.preproduction = true
|
30
|
+
self.http_timeout = 10_000
|
31
|
+
end
|
32
|
+
|
33
|
+
def api_version
|
34
|
+
'v2.01'
|
35
|
+
end
|
36
|
+
|
37
|
+
alias preproduction? preproduction
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require_relative 'common/log_provider'
|
2
|
+
require_relative 'common/rate_limit_interval'
|
3
|
+
|
4
|
+
module MangoPay
|
5
|
+
|
6
|
+
# Holds environment-specific configuration and data.
|
7
|
+
# Allows for multiple client handling and configuration
|
8
|
+
# from within the same application.
|
9
|
+
class Environment
|
10
|
+
LOG = LogProvider.provide(self)
|
11
|
+
|
12
|
+
# [Symbol] Its identification symbol
|
13
|
+
attr_reader :id
|
14
|
+
|
15
|
+
# [Configuration] Its MangoPay configuration details
|
16
|
+
attr_accessor :configuration
|
17
|
+
|
18
|
+
# [Hash] Counts of the requests sent to the API per time interval
|
19
|
+
attr_accessor :rate_limit_count
|
20
|
+
|
21
|
+
# [Hash] Number of remaining possible calls to be made per time interval
|
22
|
+
attr_accessor :rate_limit_remaining
|
23
|
+
|
24
|
+
# [Hash] UNIX times at which counts will be reset per time interval
|
25
|
+
attr_accessor :rate_limit_reset
|
26
|
+
|
27
|
+
def initialize(id)
|
28
|
+
@id = id
|
29
|
+
@rate_limit_count = {}
|
30
|
+
@rate_limit_remaining = {}
|
31
|
+
@rate_limit_reset = {}
|
32
|
+
end
|
33
|
+
|
34
|
+
# Updates the rate limit data based on headers from API.
|
35
|
+
#
|
36
|
+
# noinspection RubyResolve
|
37
|
+
def update_rate_limits(rate_limits)
|
38
|
+
rate_limits['x-ratelimit'].each.with_index do |count, index|
|
39
|
+
@rate_limit_count[time_interval(index)] = count
|
40
|
+
end
|
41
|
+
rate_limits['x-ratelimit-remaining'].each.with_index do |remain, index|
|
42
|
+
@rate_limit_remaining[time_interval(index)] = remain
|
43
|
+
end
|
44
|
+
rate_limits['x-ratelimit-reset'].each.with_index do |reset, index|
|
45
|
+
@rate_limit_reset[time_interval(index)] = reset
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# Asserts the time interval corresponding to each index
|
50
|
+
# of the values returned in API headers.
|
51
|
+
def time_interval(index)
|
52
|
+
case index
|
53
|
+
when 0
|
54
|
+
RateLimitInterval::FIFTEEN_MIN
|
55
|
+
when 1
|
56
|
+
RateLimitInterval::THIRTY_MIN
|
57
|
+
when 2
|
58
|
+
RateLimitInterval::HOUR
|
59
|
+
when 3
|
60
|
+
RateLimitInterval::DAY
|
61
|
+
else
|
62
|
+
LOG.warn 'Unexpected rate limit time interval count'
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative '../common/jsonifier'
|
2
|
+
|
3
|
+
module MangoModel
|
4
|
+
|
5
|
+
# Represents an address.
|
6
|
+
class Address
|
7
|
+
include MangoPay::Jsonifier
|
8
|
+
|
9
|
+
# [String] First line of its details
|
10
|
+
attr_accessor :address_line1
|
11
|
+
|
12
|
+
# [String] Second line of its details
|
13
|
+
attr_accessor :address_line2
|
14
|
+
|
15
|
+
# [String] Its city
|
16
|
+
attr_accessor :city
|
17
|
+
|
18
|
+
# [String] Its region
|
19
|
+
attr_accessor :region
|
20
|
+
|
21
|
+
# [String] Its postal code
|
22
|
+
attr_accessor :postal_code
|
23
|
+
|
24
|
+
# [CountryIso] Its country
|
25
|
+
attr_accessor :country
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require_relative '../common/jsonifier'
|
2
|
+
|
3
|
+
module MangoModel
|
4
|
+
|
5
|
+
# Object that represents validation status of a user declared as UBO
|
6
|
+
class DeclaredUbo
|
7
|
+
include MangoPay::Jsonifier
|
8
|
+
|
9
|
+
# [String] ID of the natural user declared as UBO
|
10
|
+
attr_accessor :user_id
|
11
|
+
|
12
|
+
# [DeclaredUboStatus] Validation status of the user declared as UBO
|
13
|
+
attr_accessor :status
|
14
|
+
|
15
|
+
# [DeclaredUboRefusedReasonType] Reason why the UBO is not validly declared
|
16
|
+
attr_accessor :refused_reason_type
|
17
|
+
|
18
|
+
# [String] Explanation of why the UBO declaration has been refused
|
19
|
+
attr_accessor :refused_reason_message
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative '../common/jsonifier'
|
2
|
+
|
3
|
+
module MangoModel
|
4
|
+
|
5
|
+
# Reason of a dispute
|
6
|
+
class DisputeReason
|
7
|
+
include MangoPay::Jsonifier
|
8
|
+
|
9
|
+
# [DisputeReasonType] Type of reason for the dispute
|
10
|
+
attr_accessor :dispute_reason_type
|
11
|
+
|
12
|
+
# [String] Explanation of the dispute reason
|
13
|
+
attr_accessor :dispute_reason_message
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative '../common/jsonifier'
|
2
|
+
|
3
|
+
module MangoModel
|
4
|
+
|
5
|
+
# Holds document page viewing data
|
6
|
+
class DocumentPageConsult
|
7
|
+
include MangoPay::Jsonifier
|
8
|
+
|
9
|
+
# [String] URL where this document page can be viewed
|
10
|
+
attr_accessor :url
|
11
|
+
|
12
|
+
# [Integer] Time when the page consult will expire (UNIX timestamp)
|
13
|
+
attr_accessor :expiration_date
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative '../common/jsonifier'
|
2
|
+
|
3
|
+
module MangoModel
|
4
|
+
|
5
|
+
# Represents a user's e-money.
|
6
|
+
class EMoney
|
7
|
+
include MangoPay::Jsonifier
|
8
|
+
|
9
|
+
# [String] Its owner's ID
|
10
|
+
attr_accessor :user_id
|
11
|
+
|
12
|
+
# [Money] The amount of money that has been credited to its owner
|
13
|
+
attr_accessor :credited_e_money
|
14
|
+
|
15
|
+
# [Money] The amount of money that has been debited from its owner
|
16
|
+
attr_accessor :debited_e_money
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../entity_base'
|
2
|
+
require_relative '../../../util/non_instantiable'
|
3
|
+
require_relative '../../enum/account_type'
|
4
|
+
|
5
|
+
module MangoModel
|
6
|
+
|
7
|
+
# Bank account entity
|
8
|
+
class BankAccount < EntityBase
|
9
|
+
extend NonInstantiable
|
10
|
+
|
11
|
+
# [String] Its owning user's ID
|
12
|
+
attr_accessor :user_id
|
13
|
+
|
14
|
+
# [AccountType] Its type
|
15
|
+
attr_accessor :type
|
16
|
+
|
17
|
+
# [String] Its owner's name
|
18
|
+
attr_accessor :owner_name
|
19
|
+
|
20
|
+
# [Address] Its owner's address
|
21
|
+
attr_accessor :owner_address
|
22
|
+
|
23
|
+
# [true/false] Whether it's active or not
|
24
|
+
attr_accessor :active
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative 'bank_account'
|
2
|
+
require_relative '../../enum/account_type'
|
3
|
+
require_relative '../../../common/jsonifier'
|
4
|
+
|
5
|
+
module MangoModel
|
6
|
+
|
7
|
+
# Bank account of +AccountType::CA+
|
8
|
+
class CaBankAccount < BankAccount
|
9
|
+
include MangoPay::Jsonifier
|
10
|
+
|
11
|
+
# [String] Its institution number (3-4 digits)
|
12
|
+
attr_accessor :institution_number
|
13
|
+
|
14
|
+
# [String] Its account number (max 20 digits)
|
15
|
+
attr_accessor :account_number
|
16
|
+
|
17
|
+
# [String] Its bank's branch code (5 digits)
|
18
|
+
attr_accessor :branch_code
|
19
|
+
|
20
|
+
# [String] Its bank's name (max 50 letters/digits)
|
21
|
+
attr_accessor :bank_name
|
22
|
+
|
23
|
+
def initialize
|
24
|
+
self.type = AccountType::CA
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|