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
data/bin/mangopay
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
4
|
-
|
5
|
-
libs = ' -r irb/completion'
|
6
|
-
libs << " -r #{File.dirname(__FILE__) + '/../lib/mangopay'}"
|
7
|
-
|
8
|
-
puts 'Loading MangoPay gem'
|
9
|
-
exec "#{irb} #{libs}"
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
4
|
+
|
5
|
+
libs = ' -r irb/completion'
|
6
|
+
libs << " -r #{File.dirname(__FILE__) + '/../lib/mangopay'}"
|
7
|
+
|
8
|
+
puts 'Loading MangoPay gem'
|
9
|
+
exec "#{irb} #{libs}"
|
data/lib/mangopay.rb
CHANGED
@@ -1,133 +1,133 @@
|
|
1
|
-
require_relative '../lib/mangopay/common/log_provider'
|
2
|
-
require_relative 'mangopay/environment'
|
3
|
-
require_relative 'mangopay/configuration'
|
4
|
-
require_relative 'mangopay/model/model'
|
5
|
-
require_relative 'mangopay/api/api'
|
6
|
-
|
7
|
-
# Holds top-level configuration.
|
8
|
-
module MangoPay
|
9
|
-
LOG = LogProvider.provide(self)
|
10
|
-
|
11
|
-
VERSION = '4.0.
|
12
|
-
|
13
|
-
SANDBOX_API_URL = 'https://api.sandbox.mangopay.com'.freeze
|
14
|
-
MAIN_API_URL = 'https://api.mangopay.com'.freeze
|
15
|
-
|
16
|
-
# ID of the environment in which to run MangoPay operations
|
17
|
-
@global_env_id = :default
|
18
|
-
# Mapping of MangoPay environments by ID
|
19
|
-
@environments = {
|
20
|
-
default: MangoPay::Environment.new(:default)
|
21
|
-
}
|
22
|
-
# Mapping of thread object IDs to MangoPay environment IDs
|
23
|
-
@env_id = {}
|
24
|
-
|
25
|
-
class << self
|
26
|
-
|
27
|
-
# Allows to specify environment in which to run MangoPay operations.
|
28
|
-
# All subsequent threads will automatically run in that environment.
|
29
|
-
#
|
30
|
-
# @param +env_id+ ID of the required environment
|
31
|
-
#
|
32
|
-
# noinspection RubyResolve
|
33
|
-
def use_environment(env_id)
|
34
|
-
@global_env_id = env_id || :default
|
35
|
-
unless @environments[@global_env_id]
|
36
|
-
LOG.debug 'Creating new environment :{}', env_id
|
37
|
-
env = MangoPay::Environment.new(@global_env_id)
|
38
|
-
@environments[@global_env_id] = env
|
39
|
-
end
|
40
|
-
LOG.info 'Using environment :{}', env_id
|
41
|
-
put_thread_local_environment
|
42
|
-
end
|
43
|
-
|
44
|
-
# Sets MangoPay to run under the default environment.
|
45
|
-
def use_default
|
46
|
-
use_environment :default
|
47
|
-
end
|
48
|
-
|
49
|
-
# Returns the environment currently being used.
|
50
|
-
#
|
51
|
-
# noinspection RubyResolve
|
52
|
-
def environment
|
53
|
-
@environments[thread_local_env_id]
|
54
|
-
end
|
55
|
-
|
56
|
-
private
|
57
|
-
|
58
|
-
# Returns the ID of the environment to be used for current thread.
|
59
|
-
#
|
60
|
-
# noinspection RubyResolve
|
61
|
-
def thread_local_env_id
|
62
|
-
thread_id = Thread.current.object_id
|
63
|
-
@env_id[thread_id] || put_thread_local_environment
|
64
|
-
end
|
65
|
-
|
66
|
-
# Saves currently-set global environment as the one to be used
|
67
|
-
# for current thread.
|
68
|
-
#
|
69
|
-
# noinspection RubyResolve
|
70
|
-
def put_thread_local_environment
|
71
|
-
thread = Thread.current
|
72
|
-
thread_id = thread.object_id
|
73
|
-
LOG.debug 'Mapping thread {} to environment :{}',
|
74
|
-
thread_id, @global_env_id
|
75
|
-
initiate_mapping_removal(thread) unless @env_id[thread_id]
|
76
|
-
@env_id[thread_id] = @global_env_id
|
77
|
-
end
|
78
|
-
|
79
|
-
# Starts another thread which will delete current thread's
|
80
|
-
# environment hash entry as soon as current thread terminates.
|
81
|
-
#
|
82
|
-
# noinspection RubyResolve
|
83
|
-
def initiate_mapping_removal(thread)
|
84
|
-
thread_id = thread.object_id
|
85
|
-
LOG.debug 'Initiating removal task for thread-to-environment mapping '\
|
86
|
-
'{ {} => :{} }', thread_id, @global_env_id
|
87
|
-
Thread.new do
|
88
|
-
thread.join
|
89
|
-
deleted = @env_id.delete thread_id
|
90
|
-
LOG.debug 'Removed thread-to-environment mapping '\
|
91
|
-
'{ {} => :{} }', thread_id, deleted
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
public
|
96
|
-
|
97
|
-
# Provides MangoPay configuration object for current environment.
|
98
|
-
#
|
99
|
-
# noinspection RubyResolve
|
100
|
-
def configuration
|
101
|
-
env = environment
|
102
|
-
env.configuration ||
|
103
|
-
raise("MangoPay.configure() was not called for environment #{env.id}")
|
104
|
-
end
|
105
|
-
|
106
|
-
# Allows configuration of the current MangoPay environment.
|
107
|
-
# Yields configuration object to a provided block.
|
108
|
-
#
|
109
|
-
# noinspection RubyResolve
|
110
|
-
def configure
|
111
|
-
env = environment
|
112
|
-
LOG.info 'Configuring environment :{}', env.id
|
113
|
-
config = env.configuration || MangoPay::Configuration.new
|
114
|
-
yield config
|
115
|
-
validate config
|
116
|
-
LOG.info 'Successfully configured environment :{} for client {}',
|
117
|
-
env.id, config.client_id
|
118
|
-
env.configuration = config
|
119
|
-
end
|
120
|
-
|
121
|
-
private
|
122
|
-
|
123
|
-
# Validates a provided MangoPay configuration.
|
124
|
-
def validate(config)
|
125
|
-
cause_message = 'You must specify your client ID'
|
126
|
-
raise cause_message unless config.client_id
|
127
|
-
cause_message = 'You must specify your client
|
128
|
-
raise cause_message unless config.
|
129
|
-
config.root_url = config.preproduction? ? SANDBOX_API_URL : MAIN_API_URL\
|
130
|
-
unless config.root_url
|
131
|
-
end
|
132
|
-
end
|
1
|
+
require_relative '../lib/mangopay/common/log_provider'
|
2
|
+
require_relative 'mangopay/environment'
|
3
|
+
require_relative 'mangopay/configuration'
|
4
|
+
require_relative 'mangopay/model/model'
|
5
|
+
require_relative 'mangopay/api/api'
|
6
|
+
|
7
|
+
# Holds top-level configuration.
|
8
|
+
module MangoPay
|
9
|
+
LOG = LogProvider.provide(self)
|
10
|
+
|
11
|
+
VERSION = '4.0.1'.freeze
|
12
|
+
|
13
|
+
SANDBOX_API_URL = 'https://api.sandbox.mangopay.com'.freeze
|
14
|
+
MAIN_API_URL = 'https://api.mangopay.com'.freeze
|
15
|
+
|
16
|
+
# ID of the environment in which to run MangoPay operations
|
17
|
+
@global_env_id = :default
|
18
|
+
# Mapping of MangoPay environments by ID
|
19
|
+
@environments = {
|
20
|
+
default: MangoPay::Environment.new(:default)
|
21
|
+
}
|
22
|
+
# Mapping of thread object IDs to MangoPay environment IDs
|
23
|
+
@env_id = {}
|
24
|
+
|
25
|
+
class << self
|
26
|
+
|
27
|
+
# Allows to specify environment in which to run MangoPay operations.
|
28
|
+
# All subsequent threads will automatically run in that environment.
|
29
|
+
#
|
30
|
+
# @param +env_id+ ID of the required environment
|
31
|
+
#
|
32
|
+
# noinspection RubyResolve
|
33
|
+
def use_environment(env_id)
|
34
|
+
@global_env_id = env_id || :default
|
35
|
+
unless @environments[@global_env_id]
|
36
|
+
LOG.debug 'Creating new environment :{}', env_id
|
37
|
+
env = MangoPay::Environment.new(@global_env_id)
|
38
|
+
@environments[@global_env_id] = env
|
39
|
+
end
|
40
|
+
LOG.info 'Using environment :{}', env_id
|
41
|
+
put_thread_local_environment
|
42
|
+
end
|
43
|
+
|
44
|
+
# Sets MangoPay to run under the default environment.
|
45
|
+
def use_default
|
46
|
+
use_environment :default
|
47
|
+
end
|
48
|
+
|
49
|
+
# Returns the environment currently being used.
|
50
|
+
#
|
51
|
+
# noinspection RubyResolve
|
52
|
+
def environment
|
53
|
+
@environments[thread_local_env_id]
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
# Returns the ID of the environment to be used for current thread.
|
59
|
+
#
|
60
|
+
# noinspection RubyResolve
|
61
|
+
def thread_local_env_id
|
62
|
+
thread_id = Thread.current.object_id
|
63
|
+
@env_id[thread_id] || put_thread_local_environment
|
64
|
+
end
|
65
|
+
|
66
|
+
# Saves currently-set global environment as the one to be used
|
67
|
+
# for current thread.
|
68
|
+
#
|
69
|
+
# noinspection RubyResolve
|
70
|
+
def put_thread_local_environment
|
71
|
+
thread = Thread.current
|
72
|
+
thread_id = thread.object_id
|
73
|
+
LOG.debug 'Mapping thread {} to environment :{}',
|
74
|
+
thread_id, @global_env_id
|
75
|
+
initiate_mapping_removal(thread) unless @env_id[thread_id]
|
76
|
+
@env_id[thread_id] = @global_env_id
|
77
|
+
end
|
78
|
+
|
79
|
+
# Starts another thread which will delete current thread's
|
80
|
+
# environment hash entry as soon as current thread terminates.
|
81
|
+
#
|
82
|
+
# noinspection RubyResolve
|
83
|
+
def initiate_mapping_removal(thread)
|
84
|
+
thread_id = thread.object_id
|
85
|
+
LOG.debug 'Initiating removal task for thread-to-environment mapping '\
|
86
|
+
'{ {} => :{} }', thread_id, @global_env_id
|
87
|
+
Thread.new do
|
88
|
+
thread.join
|
89
|
+
deleted = @env_id.delete thread_id
|
90
|
+
LOG.debug 'Removed thread-to-environment mapping '\
|
91
|
+
'{ {} => :{} }', thread_id, deleted
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
public
|
96
|
+
|
97
|
+
# Provides MangoPay configuration object for current environment.
|
98
|
+
#
|
99
|
+
# noinspection RubyResolve
|
100
|
+
def configuration
|
101
|
+
env = environment
|
102
|
+
env.configuration ||
|
103
|
+
raise("MangoPay.configure() was not called for environment #{env.id}")
|
104
|
+
end
|
105
|
+
|
106
|
+
# Allows configuration of the current MangoPay environment.
|
107
|
+
# Yields configuration object to a provided block.
|
108
|
+
#
|
109
|
+
# noinspection RubyResolve
|
110
|
+
def configure
|
111
|
+
env = environment
|
112
|
+
LOG.info 'Configuring environment :{}', env.id
|
113
|
+
config = env.configuration || MangoPay::Configuration.new
|
114
|
+
yield config
|
115
|
+
validate config
|
116
|
+
LOG.info 'Successfully configured environment :{} for client {}',
|
117
|
+
env.id, config.client_id
|
118
|
+
env.configuration = config
|
119
|
+
end
|
120
|
+
|
121
|
+
private
|
122
|
+
|
123
|
+
# Validates a provided MangoPay configuration.
|
124
|
+
def validate(config)
|
125
|
+
cause_message = 'You must specify your client ID'
|
126
|
+
raise cause_message unless config.client_id
|
127
|
+
cause_message = 'You must specify your client APIKey'
|
128
|
+
raise cause_message unless config.client_apiKey
|
129
|
+
config.root_url = config.preproduction? ? SANDBOX_API_URL : MAIN_API_URL\
|
130
|
+
unless config.root_url
|
131
|
+
end
|
132
|
+
end
|
133
133
|
end
|
data/lib/mangopay/api/api.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
require_relative 'http_client'
|
2
|
-
require_relative 'service/oauth_tokens'
|
3
|
-
require_relative 'service/users'
|
4
|
-
require_relative 'auth_token_manager'
|
5
|
-
require_relative '../common/response_error'
|
6
|
-
|
7
|
-
# Module for service classes
|
8
|
-
module MangoApi
|
1
|
+
require_relative 'http_client'
|
2
|
+
require_relative 'service/oauth_tokens'
|
3
|
+
require_relative 'service/users'
|
4
|
+
require_relative 'auth_token_manager'
|
5
|
+
require_relative '../common/response_error'
|
6
|
+
|
7
|
+
# Module for service classes
|
8
|
+
module MangoApi
|
9
9
|
end
|
@@ -1,137 +1,161 @@
|
|
1
|
-
require 'forwardable'
|
2
|
-
|
3
|
-
module MangoApi
|
4
|
-
|
5
|
-
# Declares API method URLs.
|
6
|
-
class ApiMethods
|
7
|
-
class << self
|
8
|
-
extend Forwardable
|
9
|
-
|
10
|
-
@hash = {
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
1
|
+
require 'forwardable'
|
2
|
+
|
3
|
+
module MangoApi
|
4
|
+
|
5
|
+
# Declares API method URLs.
|
6
|
+
class ApiMethods
|
7
|
+
class << self
|
8
|
+
extend Forwardable
|
9
|
+
|
10
|
+
@hash = {
|
11
|
+
create_token: %w[POST oauth/token],
|
12
|
+
|
13
|
+
create_user: %w[POST %(users/#{_params[0].person_type.to_s.downcase})],
|
14
|
+
update_user: %w[PUT %(users/#{_params[0]}/#{_params[1]})],
|
15
|
+
get_user: %w[GET %(users/#{_params[0]})],
|
16
|
+
get_users: %w[GET users],
|
17
|
+
|
18
|
+
create_account: %w[POST %(users/#{_params[0].user_id}/bankaccounts/#{_params[0].type.to_s.downcase})],
|
19
|
+
deactivate_account: %w[PUT %(users/#{_params[0]}/bankaccounts/#{_params[1]})],
|
20
|
+
get_account: %w[GET %(users/#{_params[0]}/bankaccounts/#{_params[1]})],
|
21
|
+
get_accounts: %w[GET %(users/#{_params[0]}/bankaccounts)],
|
22
|
+
|
23
|
+
create_wallet: %w[POST wallets],
|
24
|
+
update_wallet: %w[PUT %(wallets/#{_params[0].id})],
|
25
|
+
get_wallet: %w[GET %(wallets/#{_params[0]})],
|
26
|
+
get_users_wallets: %w[GET %(users/#{_params[0]}/wallets)],
|
27
|
+
|
28
|
+
update_client: %w[PUT clients],
|
29
|
+
get_client: %w[GET clients],
|
30
|
+
upload_client_logo: %w[PUT clients/logo],
|
31
|
+
|
32
|
+
get_client_wallet: %w[GET %(clients/wallets/#{_params[0].to_s}/#{_params[1].to_s})],
|
33
|
+
get_client_wallets: %w[GET clients/wallets],
|
34
|
+
get_client_wallets_funds_type: %w[GET %(clients/wallets/#{_params[0].to_s})],
|
35
|
+
|
36
|
+
get_users_e_money_year: %w[GET %(users/#{_params[0]}/emoney/#{_params[1]})],
|
37
|
+
get_users_e_money_month: %w[GET %(users/#{_params[0]}/emoney/#{_params[1]}/#{_params[2]})],
|
38
|
+
|
39
|
+
create_transfer: %w[POST transfers],
|
40
|
+
get_transfer: %w[POST %(transfers/#{_params[0]})],
|
41
|
+
|
42
|
+
create_card_web_pay_in: %w[POST payins/card/web],
|
43
|
+
create_card_direct_pay_in: %w[POST payins/card/direct],
|
44
|
+
create_card_pre_authorized_pay_in: %w[POST payins/preauthorized/direct],
|
45
|
+
create_bank_wire_direct_pay_in: %w[POST payins/bankwire/direct],
|
46
|
+
create_client_bank_wire_direct_pay_in: %w[POST clients/payins/bankwire/direct],
|
47
|
+
create_direct_debit_web_pay_in: %w[POST payins/directdebit/web],
|
48
|
+
create_direct_debit_direct_pay_in: %w[POST payins/directdebit/direct],
|
49
|
+
create_paypal_web_pay_in: %w[POST payins/paypal/web],
|
50
|
+
create_apple_pay_pay_in: %w[POST payins/applepay/direct],
|
51
|
+
create_google_pay_pay_in: %[POST payins/googlepay/direct],
|
52
|
+
get_pay_in: %w[GET %(payins/#{_params[0]})],
|
53
|
+
get_payins_refunds: %w[GET %(payins/#{_params[0]}/refunds)],
|
54
|
+
|
55
|
+
get_extended_card_view: %w[GET %(payins/card/web/#{_params[0]}/extended)],
|
56
|
+
|
57
|
+
create_card_registration: %w[POST cardregistrations],
|
58
|
+
complete_card_registration: %w[PUT %(cardregistrations/#{_params[0]})],
|
59
|
+
get_card_registration: %w[GET %(cardregistrations/#{_params[0]})],
|
60
|
+
|
61
|
+
get_card: %w[GET %(cards/#{_params[0]})],
|
62
|
+
get_users_cards: %w[GET %(users/#{_params[0]}/cards)],
|
63
|
+
get_cards_by_fingerprint: %w[GET %(cards/fingerprints/#{_params[0]})],
|
64
|
+
deactivate_card: %w[PUT %(cards/#{_params[0]})],
|
65
|
+
get_preauthorizations_for_card: %w[GET %(cards/#{_params[0]}/preauthorizations)],
|
66
|
+
|
67
|
+
get_users_transactions: %w[GET %(users/#{_params[0]}/transactions)],
|
68
|
+
get_wallets_transactions: %w[GET %(wallets/#{_params[0]}/transactions)],
|
69
|
+
get_disputes_transactions: %w[GET %(disputes/#{_params[0]}/transactions)],
|
70
|
+
get_clients_transactions: %w[GET %(clients/transactions)],
|
71
|
+
get_client_wallets_transactions: %w[GET %(clients/wallets/#{_params[0].to_s}/#{_params[1].to_s}/transactions)],
|
72
|
+
get_pre_authorizations_transactions: %w[GET %(preauthorizations/#{_params[0]}/transactions)],
|
73
|
+
get_cards_transactions: %w[GET %(cards/#{_params[0]}/transactions)],
|
74
|
+
get_bank_accounts_transactions: %w[GET %(bankaccounts/#{_params[0]}/transactions)],
|
75
|
+
get_mandates_transactions: %w[GET %(mandates/#{_params[0]}/transactions)],
|
76
|
+
|
77
|
+
create_pre_authorization: %w[POST preauthorizations/card/direct],
|
78
|
+
get_pre_authorization: %w[GET %(preauthorizations/#{_params[0]})],
|
79
|
+
cancel_pre_authorization: %w[PUT %(preauthorizations/#{_params[0]})],
|
80
|
+
get_users_pre_authorizations: %w[GET %(users/#{_params[0]}/preauthorizations)],
|
81
|
+
|
82
|
+
create_mandate: %w[POST mandates/directdebit/web],
|
83
|
+
get_mandate: %w[GET %(mandates/#{_params[0]})],
|
84
|
+
cancel_mandate: %w[PUT %(mandates/#{_params[0]}/cancel)],
|
85
|
+
get_mandates: %w[GET mandates],
|
86
|
+
get_users_mandates: %w[GET %(users/#{_params[0]}/mandates)],
|
87
|
+
get_accounts_mandates: %w[GET %(users/#{_params[0]}/bankaccounts/#{_params[1]}/mandates)],
|
88
|
+
|
89
|
+
create_pay_out: %w[POST payouts/bankwire],
|
90
|
+
get_pay_out: %w[GET %(payouts/#{_params[0]})],
|
91
|
+
|
92
|
+
create_kyc_document: %w[POST %(users/#{_params[0]}/kyc/documents)],
|
93
|
+
upload_kyc_document_page: %w[POST %(users/#{_params[0]}/kyc/documents/#{_params[1]}/pages)],
|
94
|
+
submit_kyc_document: %w[PUT %(users/#{_params[0]}/kyc/documents/#{_params[1]})],
|
95
|
+
get_users_kyc_documents: %w[GET %(users/#{_params[0]}/kyc/documents)],
|
96
|
+
get_kyc_documents: %w[GET kyc/documents],
|
97
|
+
consult_kyc_document: %w[POST %(kyc/documents/#{_params[0]}/consult)],
|
98
|
+
|
99
|
+
all_ubo_declaration: %w[GET %(users/#{_params[0]}/kyc/ubodeclarations)],
|
100
|
+
create_ubo_declaration: %w[POST %(users/#{_params[0]}/kyc/ubodeclarations)],
|
101
|
+
get_ubo_declaration: %w[GET %(users/#{_params[0]}/kyc/ubodeclarations/#{_params[1]})],
|
102
|
+
get_ubo_declaration_by_id: %w[GET %(kyc/ubodeclarations/#{_params[0]})],
|
103
|
+
submit_ubo_declaration: %w[PUT %(users/#{_params[0]}/kyc/ubodeclarations/#{_params[1]})],
|
104
|
+
|
105
|
+
create_ubo: %w[POST %(users/#{_params[0]}/kyc/ubodeclarations/#{_params[1]}/ubos)],
|
106
|
+
update_ubo: %w[PUT %(users/#{_params[0]}/kyc/ubodeclarations/#{_params[1]}/ubos/#{_params[2]})],
|
107
|
+
get_ubo: %w[GET %(users/#{_params[0]}/kyc/ubodeclarations/#{_params[1]}/ubos/#{_params[2]})],
|
108
|
+
|
109
|
+
create_hook: %w[POST hooks],
|
110
|
+
update_hook: %w[PUT %(hooks/#{_params[0]})],
|
111
|
+
get_hook: %w[GET %(hooks/#{_params[0]})],
|
112
|
+
get_hooks: %w[GET hooks],
|
113
|
+
|
114
|
+
get_events: %w[GET events],
|
115
|
+
|
116
|
+
create_pay_in_refund: %w[POST %(payins/#{_params[0]}/refunds)],
|
117
|
+
create_transfer_refund: %w[POST %(transfers/#{_params[0]}/refunds)],
|
118
|
+
get_payouts_refunds: %w[GET %(payouts/#{_params[0]}/refunds)],
|
119
|
+
get_transfers_refunds: %w[GET %(transfers/#{_params[0]}/refunds)],
|
120
|
+
|
121
|
+
update_dispute: %w[PUT %(disputes/#{_params[0]})],
|
122
|
+
close_dispute: %w[PUT %(disputes/#{_params[0]}/close)],
|
123
|
+
submit_dispute: %w[PUT %(disputes/#{_params[0]}/submit)],
|
124
|
+
resubmit_dispute: %w[PUT %(disputes/#{_params[0]}/submit)],
|
125
|
+
get_dispute: %w[GET %(disputes/#{_params[0]})],
|
126
|
+
get_users_disputes: %w[GET %(users/#{_params[0]}/disputes)],
|
127
|
+
get_wallets_disputes: %w[GET %(wallets/#{_params[0]}/disputes)],
|
128
|
+
get_disputes_pending_settlement: %w[GET disputes/pendingsettlement],
|
129
|
+
get_disputes: %w[GET disputes],
|
130
|
+
|
131
|
+
create_dispute_document: %w[POST %(disputes/#{_params[0]}/documents)],
|
132
|
+
upload_dispute_document_page: %w[POST %(disputes/#{_params[0]}/documents/#{_params[1]}/pages)],
|
133
|
+
submit_dispute_document: %w[PUT %(disputes/#{_params[0]}/documents/#{_params[1]})],
|
134
|
+
get_dispute_document: %w[GET %(dispute-documents/#{_params[0]})],
|
135
|
+
get_disputes_documents: %w[GET %(disputes/#{_params[0]}/documents)],
|
136
|
+
get_dispute_documents: %w[GET dispute-documents],
|
137
|
+
consult_dispute_document: %w[POST %(dispute-documents/#{_params[0]}/consult)],
|
138
|
+
|
139
|
+
get_repudiation: %w[GET %(repudiations/#{_params[0]})],
|
140
|
+
get_repudiations_refunds: %w[GET %(repudiations/#{_params[0]}/refunds)],
|
141
|
+
|
142
|
+
create_settlement_transfer: %w[POST %(repudiations/#{_params[0]}/settlementtransfer)],
|
143
|
+
get_settlement_transfer: %w[GET %(settlements/#{_params[0]})],
|
144
|
+
|
145
|
+
create_transaction_report: %w[POST reports/transactions],
|
146
|
+
create_wallet_report: %w[POST reports/wallets],
|
147
|
+
get_report: %w[GET %(reports/#{_params[0]})],
|
148
|
+
get_reports: %w[GET reports],
|
149
|
+
|
150
|
+
replicate_response: %w[GET %(responses/#{_params[0]})],
|
151
|
+
|
152
|
+
banking_alias_create_iban: %w[POST %(wallets/#{_params[0]}/bankingaliases/iban)],
|
153
|
+
banking_alias_all: %w[GET %(wallets/#{_params[0]}/bankingaliases)],
|
154
|
+
banking_alias_get: %w[GET %(bankingaliases/#{_params[0]})],
|
155
|
+
banking_alias_save: %w[PUT %(bankingaliases/#{_params[0]})]
|
156
|
+
}
|
157
|
+
|
158
|
+
def_delegators @hash, :[]
|
159
|
+
end
|
160
|
+
end
|
137
161
|
end
|