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,54 +1,54 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
|
3
|
-
module MangoApi
|
4
|
-
|
5
|
-
# Provides API method delegates concerning the +Transfer+ entity
|
6
|
-
module Transfers
|
7
|
-
class << self
|
8
|
-
include UriProvider
|
9
|
-
|
10
|
-
# Creates a new transfer entity.
|
11
|
-
#
|
12
|
-
# +Transfer+ properties:
|
13
|
-
# * Required
|
14
|
-
# * author_id
|
15
|
-
# * debited_funds
|
16
|
-
# * fees
|
17
|
-
# * debited_wallet_id
|
18
|
-
# * credited_wallet_id
|
19
|
-
# * Optional
|
20
|
-
# * tag
|
21
|
-
# * credited_user_id
|
22
|
-
#
|
23
|
-
# @param +transfer+ [Transfer] model object of transfer to be created
|
24
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
25
|
-
# @return [Transfer] the newly-created Transfer entity object
|
26
|
-
def create(transfer, id_key = nil)
|
27
|
-
uri = provide_uri(:create_transfer)
|
28
|
-
response = HttpClient.post(uri, transfer, id_key)
|
29
|
-
parse response
|
30
|
-
end
|
31
|
-
|
32
|
-
# Retrieves a transfer entity.
|
33
|
-
#
|
34
|
-
# @param +id+ [String] ID of the transfer to be retrieved
|
35
|
-
# @return [Transfer] the requested entity object
|
36
|
-
def get(id)
|
37
|
-
uri = provide_uri(:get_transfer, id)
|
38
|
-
response = HttpClient.get(uri)
|
39
|
-
parse response
|
40
|
-
end
|
41
|
-
|
42
|
-
private
|
43
|
-
|
44
|
-
# Parses a JSON-originating hash into the corresponding
|
45
|
-
# Transfer entity object.
|
46
|
-
#
|
47
|
-
# @param +response+ [Hash] JSON-originating data hash
|
48
|
-
# @return [Transfer] corresponding Transfer entity object
|
49
|
-
def parse(response)
|
50
|
-
MangoModel::Transfer.new.dejsonify response
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
|
3
|
+
module MangoApi
|
4
|
+
|
5
|
+
# Provides API method delegates concerning the +Transfer+ entity
|
6
|
+
module Transfers
|
7
|
+
class << self
|
8
|
+
include UriProvider
|
9
|
+
|
10
|
+
# Creates a new transfer entity.
|
11
|
+
#
|
12
|
+
# +Transfer+ properties:
|
13
|
+
# * Required
|
14
|
+
# * author_id
|
15
|
+
# * debited_funds
|
16
|
+
# * fees
|
17
|
+
# * debited_wallet_id
|
18
|
+
# * credited_wallet_id
|
19
|
+
# * Optional
|
20
|
+
# * tag
|
21
|
+
# * credited_user_id
|
22
|
+
#
|
23
|
+
# @param +transfer+ [Transfer] model object of transfer to be created
|
24
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
25
|
+
# @return [Transfer] the newly-created Transfer entity object
|
26
|
+
def create(transfer, id_key = nil)
|
27
|
+
uri = provide_uri(:create_transfer)
|
28
|
+
response = HttpClient.post(uri, transfer, id_key)
|
29
|
+
parse response
|
30
|
+
end
|
31
|
+
|
32
|
+
# Retrieves a transfer entity.
|
33
|
+
#
|
34
|
+
# @param +id+ [String] ID of the transfer to be retrieved
|
35
|
+
# @return [Transfer] the requested entity object
|
36
|
+
def get(id)
|
37
|
+
uri = provide_uri(:get_transfer, id)
|
38
|
+
response = HttpClient.get(uri)
|
39
|
+
parse response
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
# Parses a JSON-originating hash into the corresponding
|
45
|
+
# Transfer entity object.
|
46
|
+
#
|
47
|
+
# @param +response+ [Hash] JSON-originating data hash
|
48
|
+
# @return [Transfer] corresponding Transfer entity object
|
49
|
+
def parse(response)
|
50
|
+
MangoModel::Transfer.new.dejsonify response
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
54
|
end
|
@@ -1,70 +1,95 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
require_relative '../../model/request/submit_ubo_declaration_request'
|
3
|
-
|
4
|
-
module MangoApi
|
5
|
-
|
6
|
-
# Provides API method delegates for the +UboDeclaration+ entity
|
7
|
-
module UboDeclarations
|
8
|
-
class << self
|
9
|
-
include UriProvider
|
10
|
-
|
11
|
-
# Creates a UBO Declaration entity.
|
12
|
-
#
|
13
|
-
# +UboDeclaration+ properties:
|
14
|
-
# * Optional
|
15
|
-
# * tag
|
16
|
-
# * declared_ubos
|
17
|
-
#
|
18
|
-
# @param +
|
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
|
-
# @param +
|
64
|
-
# @
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
require_relative '../../model/request/submit_ubo_declaration_request'
|
3
|
+
|
4
|
+
module MangoApi
|
5
|
+
|
6
|
+
# Provides API method delegates for the +UboDeclaration+ entity
|
7
|
+
module UboDeclarations
|
8
|
+
class << self
|
9
|
+
include UriProvider
|
10
|
+
|
11
|
+
# Creates a UBO Declaration entity.
|
12
|
+
#
|
13
|
+
# +UboDeclaration+ properties:
|
14
|
+
# * Optional
|
15
|
+
# * tag
|
16
|
+
# * declared_ubos
|
17
|
+
#
|
18
|
+
# @param +user_id+ [String] ID of the user who the declaration is
|
19
|
+
# being created for
|
20
|
+
# @return [UboDeclaration] the newly-created UboDeclaration entity object
|
21
|
+
def create(user_id, id_key = nil)
|
22
|
+
uri = provide_uri(:create_ubo_declaration, user_id)
|
23
|
+
response = HttpClient.post(uri, nil, id_key)
|
24
|
+
parse response
|
25
|
+
end
|
26
|
+
|
27
|
+
def get_all(user_id, id_key = nil)
|
28
|
+
uri = provide_uri(:all_ubo_declaration, user_id)
|
29
|
+
response = HttpClient.get(uri, id_key)
|
30
|
+
parse_ubo_declarations response
|
31
|
+
end
|
32
|
+
|
33
|
+
def get(user_id, ubo_declaration_id, id_key = nil)
|
34
|
+
uri = if user_id != nil
|
35
|
+
provide_uri(:get_ubo_declaration, user_id, ubo_declaration_id)
|
36
|
+
else
|
37
|
+
provide_uri(:get_ubo_declaration_by_id, ubo_declaration_id)
|
38
|
+
end
|
39
|
+
response = HttpClient.get(uri, id_key)
|
40
|
+
parse response
|
41
|
+
end
|
42
|
+
|
43
|
+
def create_ubo(user_id, ubo_declaration_id, ubo, id_key = nil)
|
44
|
+
uri = provide_uri(:create_ubo, user_id, ubo_declaration_id)
|
45
|
+
response = HttpClient.post(uri, ubo, id_key)
|
46
|
+
parseUbo response
|
47
|
+
end
|
48
|
+
|
49
|
+
def update_ubo(user_id, ubo_declaration_id, ubo)
|
50
|
+
uri = provide_uri(:update_ubo, user_id, ubo_declaration_id, ubo.id)
|
51
|
+
response = HttpClient.put(uri, ubo)
|
52
|
+
parseUbo response
|
53
|
+
end
|
54
|
+
|
55
|
+
def get_ubo(user_id, ubo_declaration_id, ubo_id, id_key = nil)
|
56
|
+
uri = provide_uri(:get_ubo, user_id, ubo_declaration_id, ubo_id)
|
57
|
+
response = HttpClient.get(uri, id_key)
|
58
|
+
parseUbo response
|
59
|
+
end
|
60
|
+
|
61
|
+
# Submits a UBO declaration entity for approval.
|
62
|
+
#
|
63
|
+
# @param +id+ [String] ID of the UBO declaration to submit
|
64
|
+
# @param +tag+ [String] custom data to add with the request
|
65
|
+
# @return [UboDeclaration] the submitted UboDeclaration entity object
|
66
|
+
def submit(user_id, ubo_declaration_id, tag = nil)
|
67
|
+
uri = provide_uri(:submit_ubo_declaration, user_id, ubo_declaration_id)
|
68
|
+
submit_request = SubmitUboDeclarationRequest.new(ubo_declaration_id, tag)
|
69
|
+
response = HttpClient.put(uri, submit_request)
|
70
|
+
parse response
|
71
|
+
end
|
72
|
+
|
73
|
+
private
|
74
|
+
|
75
|
+
# Parses a JSON-originating hash into the corresponding
|
76
|
+
# UboDeclaration entity object.
|
77
|
+
#
|
78
|
+
# @param +response+ [Hash] JSON-originating data hash
|
79
|
+
# @return [UboDeclaration] corresponding UboDeclaration entity object
|
80
|
+
def parse(response)
|
81
|
+
MangoModel::UboDeclaration.new.dejsonify response
|
82
|
+
end
|
83
|
+
|
84
|
+
def parse_ubo_declarations(results)
|
85
|
+
results.collect do |entity|
|
86
|
+
parse entity
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def parseUbo(response)
|
91
|
+
MangoModel::Ubo.new.dejsonify response
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
70
95
|
end
|
@@ -1,163 +1,163 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
require_relative '../../model/request/filter_request'
|
3
|
-
|
4
|
-
module MangoApi
|
5
|
-
|
6
|
-
# Provides API method delegates concerning the +User+ entity.
|
7
|
-
module Users
|
8
|
-
class << self
|
9
|
-
include UriProvider
|
10
|
-
|
11
|
-
# Creates a new user entity.
|
12
|
-
#
|
13
|
-
# +User+ properties:
|
14
|
-
# * +NaturalUser+
|
15
|
-
# * +first_name+ - required
|
16
|
-
# * +last_name+ - required
|
17
|
-
# * +birthday+ - required
|
18
|
-
# * +nationality+ - required
|
19
|
-
# * +country_of_residence+ - required
|
20
|
-
# * +email+ - required
|
21
|
-
# * +tag+ - optional
|
22
|
-
# * +address+ - optional
|
23
|
-
# * +occupation+ - optional
|
24
|
-
# * +income_range+ - optional
|
25
|
-
# * +capacity+ - optional
|
26
|
-
# * +LegalUser+
|
27
|
-
# * +legal_person_type+ - required
|
28
|
-
# * +name+ - required
|
29
|
-
# * +legal_representative_birthday+ - required
|
30
|
-
# * +legal_representative_country_of_residence+ - required
|
31
|
-
# * +legal_representative_nationality+ - required
|
32
|
-
# * +legal_representative_first_name+ - required
|
33
|
-
# * +legal_representative_last_name+ - required
|
34
|
-
# * +email+ - required
|
35
|
-
# * +tag+ - optional
|
36
|
-
# * +headquarters_address+ - optional
|
37
|
-
# * +legal_representative_address+ - optional
|
38
|
-
# * +legal_representative_email+ - optional
|
39
|
-
# * +company_number+ - optional
|
40
|
-
#
|
41
|
-
# +User+ properties:
|
42
|
-
# * Optional
|
43
|
-
# * tag
|
44
|
-
# * declared_ubos
|
45
|
-
#
|
46
|
-
# @param +user+ [User] model object of user to be created
|
47
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
48
|
-
# @return [User] the newly-created User entity object
|
49
|
-
def create(user, id_key = nil)
|
50
|
-
uri = provide_uri(:create_user, user)
|
51
|
-
response = HttpClient.post(uri, user, id_key)
|
52
|
-
parse response
|
53
|
-
end
|
54
|
-
|
55
|
-
# Updates the user entity identifiable by
|
56
|
-
# the provided user object's ID.
|
57
|
-
#
|
58
|
-
# +User+ optional properties:
|
59
|
-
# * +NaturalUser+
|
60
|
-
# * tag
|
61
|
-
# * first_name
|
62
|
-
# * last_name
|
63
|
-
# * address
|
64
|
-
# * birthday
|
65
|
-
# * nationality
|
66
|
-
# * country_of_residence
|
67
|
-
# * occupation
|
68
|
-
# * income_range
|
69
|
-
# * email
|
70
|
-
# * +Legal_user+
|
71
|
-
# * tag
|
72
|
-
# * headquarters_address
|
73
|
-
# * name
|
74
|
-
# * legal_representative_address
|
75
|
-
# * legal_representative_birthday
|
76
|
-
# * legal_representative_country_of_residence
|
77
|
-
# * legal_representative_nationality
|
78
|
-
# * legal_representative_email
|
79
|
-
# * legal_representative_first_name
|
80
|
-
# * legal_representative_last_name
|
81
|
-
# * legal_person_type
|
82
|
-
# * company_number
|
83
|
-
#
|
84
|
-
# @param +user+ [User] user object with corresponding ID
|
85
|
-
# and updated data
|
86
|
-
# @return [User] the updated User entity object
|
87
|
-
def update(user)
|
88
|
-
uri = provide_uri :update_user,
|
89
|
-
user.person_type.to_s.downcase,
|
90
|
-
user.id
|
91
|
-
response = HttpClient.put(uri, user)
|
92
|
-
parse response
|
93
|
-
end
|
94
|
-
|
95
|
-
# Retrieves a user entity.
|
96
|
-
#
|
97
|
-
# @param +id+ [String] ID of the user to be retrieved
|
98
|
-
# @return [User] the requested entity object
|
99
|
-
def get(id)
|
100
|
-
uri = provide_uri(:get_user, id)
|
101
|
-
response = HttpClient.get(uri)
|
102
|
-
parse response
|
103
|
-
end
|
104
|
-
|
105
|
-
# Retrieves user entity pages. Allows configuration
|
106
|
-
# of paging and sorting parameters by yielding a filtering
|
107
|
-
# object to a provided block. When no filters are specified,
|
108
|
-
# will retrieve the first page of 10 newest results.
|
109
|
-
#
|
110
|
-
# Allowed +FilterRequest+ params:
|
111
|
-
# * page
|
112
|
-
# * per_page
|
113
|
-
# * sort_field and sort_direction
|
114
|
-
# * before_date
|
115
|
-
# * after_date
|
116
|
-
#
|
117
|
-
# @return [Array] corresponding User entity objects
|
118
|
-
def all
|
119
|
-
uri = provide_uri(:get_users)
|
120
|
-
filter_request = nil
|
121
|
-
yield filter_request = FilterRequest.new if block_given?
|
122
|
-
results = HttpClient.get(uri, filter_request)
|
123
|
-
parse_results results
|
124
|
-
end
|
125
|
-
|
126
|
-
private
|
127
|
-
|
128
|
-
# Parses an array of JSON-originating hashes into the corresponding
|
129
|
-
# User entity objects.
|
130
|
-
#
|
131
|
-
# @param +results+ [Array] JSON-originating data hashes
|
132
|
-
# @return [Array] parsed User entity objects
|
133
|
-
def parse_results(results)
|
134
|
-
results.collect do |entity|
|
135
|
-
parse entity
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
# Parses a JSON-originating hash into the corresponding
|
140
|
-
# User entity object.
|
141
|
-
#
|
142
|
-
# @param +response+ [Hash] JSON-originating data hash
|
143
|
-
# @return [User] corresponding User entity object
|
144
|
-
def parse(response)
|
145
|
-
type = user_type(response)
|
146
|
-
type.new.dejsonify response
|
147
|
-
end
|
148
|
-
|
149
|
-
# Asserts the type of user represented by a hash.
|
150
|
-
#
|
151
|
-
# @param +hash+ [Hash] source hash
|
152
|
-
# @return [Class] type of user represented by the hash
|
153
|
-
def user_type(hash)
|
154
|
-
case hash['PersonType']
|
155
|
-
when MangoModel::PersonType::NATURAL.to_s
|
156
|
-
MangoModel::NaturalUser
|
157
|
-
else
|
158
|
-
MangoModel::LegalUser
|
159
|
-
end
|
160
|
-
end
|
161
|
-
end
|
162
|
-
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 +User+ entity.
|
7
|
+
module Users
|
8
|
+
class << self
|
9
|
+
include UriProvider
|
10
|
+
|
11
|
+
# Creates a new user entity.
|
12
|
+
#
|
13
|
+
# +User+ properties:
|
14
|
+
# * +NaturalUser+
|
15
|
+
# * +first_name+ - required
|
16
|
+
# * +last_name+ - required
|
17
|
+
# * +birthday+ - required
|
18
|
+
# * +nationality+ - required
|
19
|
+
# * +country_of_residence+ - required
|
20
|
+
# * +email+ - required
|
21
|
+
# * +tag+ - optional
|
22
|
+
# * +address+ - optional
|
23
|
+
# * +occupation+ - optional
|
24
|
+
# * +income_range+ - optional
|
25
|
+
# * +capacity+ - optional
|
26
|
+
# * +LegalUser+
|
27
|
+
# * +legal_person_type+ - required
|
28
|
+
# * +name+ - required
|
29
|
+
# * +legal_representative_birthday+ - required
|
30
|
+
# * +legal_representative_country_of_residence+ - required
|
31
|
+
# * +legal_representative_nationality+ - required
|
32
|
+
# * +legal_representative_first_name+ - required
|
33
|
+
# * +legal_representative_last_name+ - required
|
34
|
+
# * +email+ - required
|
35
|
+
# * +tag+ - optional
|
36
|
+
# * +headquarters_address+ - optional
|
37
|
+
# * +legal_representative_address+ - optional
|
38
|
+
# * +legal_representative_email+ - optional
|
39
|
+
# * +company_number+ - optional
|
40
|
+
#
|
41
|
+
# +User+ properties:
|
42
|
+
# * Optional
|
43
|
+
# * tag
|
44
|
+
# * declared_ubos
|
45
|
+
#
|
46
|
+
# @param +user+ [User] model object of user to be created
|
47
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
48
|
+
# @return [User] the newly-created User entity object
|
49
|
+
def create(user, id_key = nil)
|
50
|
+
uri = provide_uri(:create_user, user)
|
51
|
+
response = HttpClient.post(uri, user, id_key)
|
52
|
+
parse response
|
53
|
+
end
|
54
|
+
|
55
|
+
# Updates the user entity identifiable by
|
56
|
+
# the provided user object's ID.
|
57
|
+
#
|
58
|
+
# +User+ optional properties:
|
59
|
+
# * +NaturalUser+
|
60
|
+
# * tag
|
61
|
+
# * first_name
|
62
|
+
# * last_name
|
63
|
+
# * address
|
64
|
+
# * birthday
|
65
|
+
# * nationality
|
66
|
+
# * country_of_residence
|
67
|
+
# * occupation
|
68
|
+
# * income_range
|
69
|
+
# * email
|
70
|
+
# * +Legal_user+
|
71
|
+
# * tag
|
72
|
+
# * headquarters_address
|
73
|
+
# * name
|
74
|
+
# * legal_representative_address
|
75
|
+
# * legal_representative_birthday
|
76
|
+
# * legal_representative_country_of_residence
|
77
|
+
# * legal_representative_nationality
|
78
|
+
# * legal_representative_email
|
79
|
+
# * legal_representative_first_name
|
80
|
+
# * legal_representative_last_name
|
81
|
+
# * legal_person_type
|
82
|
+
# * company_number
|
83
|
+
#
|
84
|
+
# @param +user+ [User] user object with corresponding ID
|
85
|
+
# and updated data
|
86
|
+
# @return [User] the updated User entity object
|
87
|
+
def update(user)
|
88
|
+
uri = provide_uri :update_user,
|
89
|
+
user.person_type.to_s.downcase,
|
90
|
+
user.id
|
91
|
+
response = HttpClient.put(uri, user)
|
92
|
+
parse response
|
93
|
+
end
|
94
|
+
|
95
|
+
# Retrieves a user entity.
|
96
|
+
#
|
97
|
+
# @param +id+ [String] ID of the user to be retrieved
|
98
|
+
# @return [User] the requested entity object
|
99
|
+
def get(id)
|
100
|
+
uri = provide_uri(:get_user, id)
|
101
|
+
response = HttpClient.get(uri)
|
102
|
+
parse response
|
103
|
+
end
|
104
|
+
|
105
|
+
# Retrieves user entity pages. Allows configuration
|
106
|
+
# of paging and sorting parameters by yielding a filtering
|
107
|
+
# object to a provided block. When no filters are specified,
|
108
|
+
# will retrieve the first page of 10 newest results.
|
109
|
+
#
|
110
|
+
# Allowed +FilterRequest+ params:
|
111
|
+
# * page
|
112
|
+
# * per_page
|
113
|
+
# * sort_field and sort_direction
|
114
|
+
# * before_date
|
115
|
+
# * after_date
|
116
|
+
#
|
117
|
+
# @return [Array] corresponding User entity objects
|
118
|
+
def all
|
119
|
+
uri = provide_uri(:get_users)
|
120
|
+
filter_request = nil
|
121
|
+
yield filter_request = FilterRequest.new if block_given?
|
122
|
+
results = HttpClient.get(uri, filter_request)
|
123
|
+
parse_results results
|
124
|
+
end
|
125
|
+
|
126
|
+
private
|
127
|
+
|
128
|
+
# Parses an array of JSON-originating hashes into the corresponding
|
129
|
+
# User entity objects.
|
130
|
+
#
|
131
|
+
# @param +results+ [Array] JSON-originating data hashes
|
132
|
+
# @return [Array] parsed User entity objects
|
133
|
+
def parse_results(results)
|
134
|
+
results.collect do |entity|
|
135
|
+
parse entity
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
# Parses a JSON-originating hash into the corresponding
|
140
|
+
# User entity object.
|
141
|
+
#
|
142
|
+
# @param +response+ [Hash] JSON-originating data hash
|
143
|
+
# @return [User] corresponding User entity object
|
144
|
+
def parse(response)
|
145
|
+
type = user_type(response)
|
146
|
+
type.new.dejsonify response
|
147
|
+
end
|
148
|
+
|
149
|
+
# Asserts the type of user represented by a hash.
|
150
|
+
#
|
151
|
+
# @param +hash+ [Hash] source hash
|
152
|
+
# @return [Class] type of user represented by the hash
|
153
|
+
def user_type(hash)
|
154
|
+
case hash['PersonType']
|
155
|
+
when MangoModel::PersonType::NATURAL.to_s
|
156
|
+
MangoModel::NaturalUser
|
157
|
+
else
|
158
|
+
MangoModel::LegalUser
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
163
163
|
end
|