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,47 +1,47 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
|
3
|
-
module MangoApi
|
4
|
-
|
5
|
-
# Provides API method delegates concerning the +Event+ entity
|
6
|
-
module Events
|
7
|
-
class << self
|
8
|
-
include UriProvider
|
9
|
-
|
10
|
-
# Retrieves list of Event entity pages.
|
11
|
-
# Allows configuration of paging and sorting parameters by
|
12
|
-
# yielding a filtering object to a provided block. When no
|
13
|
-
# filters are specified, will retrieve the first page of
|
14
|
-
# 10 newest results.
|
15
|
-
#
|
16
|
-
# Allowed +FilterRequest+ params:
|
17
|
-
# * page
|
18
|
-
# * per_page
|
19
|
-
# * sort_field and sort_direction
|
20
|
-
# * before_date
|
21
|
-
# * after_date
|
22
|
-
# * event_type
|
23
|
-
#
|
24
|
-
# @return [Array] requested Event entity objects
|
25
|
-
def all
|
26
|
-
uri = provide_uri(:get_events)
|
27
|
-
filter_request = nil
|
28
|
-
yield filter_request = FilterRequest.new if block_given?
|
29
|
-
results = HttpClient.get(uri, filter_request)
|
30
|
-
parse_results results
|
31
|
-
end
|
32
|
-
|
33
|
-
private
|
34
|
-
|
35
|
-
# Parses an array of JSON-originating hashes into the corresponding
|
36
|
-
# Event entity objects.
|
37
|
-
#
|
38
|
-
# @param +results+ [Array] JSON-originating data hashes
|
39
|
-
# @return [Array] parsed Event entity objects
|
40
|
-
def parse_results(results)
|
41
|
-
results.collect do |entity|
|
42
|
-
MangoModel::Event.new.dejsonify entity
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
|
3
|
+
module MangoApi
|
4
|
+
|
5
|
+
# Provides API method delegates concerning the +Event+ entity
|
6
|
+
module Events
|
7
|
+
class << self
|
8
|
+
include UriProvider
|
9
|
+
|
10
|
+
# Retrieves list of Event entity pages.
|
11
|
+
# Allows configuration of paging and sorting parameters by
|
12
|
+
# yielding a filtering object to a provided block. When no
|
13
|
+
# filters are specified, will retrieve the first page of
|
14
|
+
# 10 newest results.
|
15
|
+
#
|
16
|
+
# Allowed +FilterRequest+ params:
|
17
|
+
# * page
|
18
|
+
# * per_page
|
19
|
+
# * sort_field and sort_direction
|
20
|
+
# * before_date
|
21
|
+
# * after_date
|
22
|
+
# * event_type
|
23
|
+
#
|
24
|
+
# @return [Array] requested Event entity objects
|
25
|
+
def all
|
26
|
+
uri = provide_uri(:get_events)
|
27
|
+
filter_request = nil
|
28
|
+
yield filter_request = FilterRequest.new if block_given?
|
29
|
+
results = HttpClient.get(uri, filter_request)
|
30
|
+
parse_results results
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
# Parses an array of JSON-originating hashes into the corresponding
|
36
|
+
# Event entity objects.
|
37
|
+
#
|
38
|
+
# @param +results+ [Array] JSON-originating data hashes
|
39
|
+
# @return [Array] parsed Event entity objects
|
40
|
+
def parse_results(results)
|
41
|
+
results.collect do |entity|
|
42
|
+
MangoModel::Event.new.dejsonify entity
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
47
|
end
|
@@ -1,93 +1,93 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
require_relative '../../model/request/filter_request'
|
3
|
-
|
4
|
-
module MangoApi
|
5
|
-
|
6
|
-
# Provides API method delegates concerning the +Hook+ entity
|
7
|
-
module Hooks
|
8
|
-
class << self
|
9
|
-
include UriProvider
|
10
|
-
|
11
|
-
# Creates a new hook entity.
|
12
|
-
#
|
13
|
-
# +Hook+ properties:
|
14
|
-
# * Required
|
15
|
-
# * event_type
|
16
|
-
# * url
|
17
|
-
# * Optional
|
18
|
-
# * tag
|
19
|
-
#
|
20
|
-
# @param +hook+ [Hook] model object of the hook to be created
|
21
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
22
|
-
# @return [Hook] the newly-created Hook entity object
|
23
|
-
def create(hook, id_key = nil)
|
24
|
-
uri = provide_uri(:create_hook)
|
25
|
-
response = HttpClient.post(uri, hook, id_key)
|
26
|
-
parse response
|
27
|
-
end
|
28
|
-
|
29
|
-
# Updates the hook entity identifiable by the provided
|
30
|
-
# Hook object's ID.
|
31
|
-
#
|
32
|
-
# +Hook+ optional properties:
|
33
|
-
# * tag
|
34
|
-
# * status
|
35
|
-
# * url
|
36
|
-
#
|
37
|
-
# @param +hook+ [Hook] hook object with corresponding ID
|
38
|
-
# and updated data
|
39
|
-
# @return [Hook] the updated Hook entity object
|
40
|
-
def update(hook)
|
41
|
-
uri = provide_uri(:update_hook, hook.id)
|
42
|
-
response = HttpClient.put(uri, hook)
|
43
|
-
parse response
|
44
|
-
end
|
45
|
-
|
46
|
-
# Retrieves a hook entity.
|
47
|
-
#
|
48
|
-
# @param +id+ [String] ID of the hook to retrieve
|
49
|
-
# @return [Hook] the requested Hook entity object
|
50
|
-
def get(id)
|
51
|
-
uri = provide_uri(:get_hook, id)
|
52
|
-
response = HttpClient.get(uri)
|
53
|
-
parse response
|
54
|
-
end
|
55
|
-
|
56
|
-
# Retrieves all hooks.
|
57
|
-
#
|
58
|
-
# Allowed +FilterRequest+ params:
|
59
|
-
# * page
|
60
|
-
# * per_page
|
61
|
-
# * sort_field and sort_direction
|
62
|
-
#
|
63
|
-
# @return [Array] Hook entity objects
|
64
|
-
def all
|
65
|
-
uri = provide_uri(:get_hooks)
|
66
|
-
results = HttpClient.get(uri)
|
67
|
-
parse_results results
|
68
|
-
end
|
69
|
-
|
70
|
-
private
|
71
|
-
|
72
|
-
# Parses an array of JSON-originating hashes into the corresponding
|
73
|
-
# Hook entity objects.
|
74
|
-
#
|
75
|
-
# @param +results+ [Array] JSON-originating data hashes
|
76
|
-
# @return [Array] parsed Hook entity objects
|
77
|
-
def parse_results(results)
|
78
|
-
results.collect do |entity|
|
79
|
-
parse entity
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
# Parses a JSON-originating hash into the corresponding
|
84
|
-
# Hook entity object.
|
85
|
-
#
|
86
|
-
# @param +response+ [Hash] JSON-originating data hash
|
87
|
-
# @return [Hook] corresponding Hook entity object
|
88
|
-
def parse(response)
|
89
|
-
MangoModel::Hook.new.dejsonify response
|
90
|
-
end
|
91
|
-
end
|
92
|
-
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 +Hook+ entity
|
7
|
+
module Hooks
|
8
|
+
class << self
|
9
|
+
include UriProvider
|
10
|
+
|
11
|
+
# Creates a new hook entity.
|
12
|
+
#
|
13
|
+
# +Hook+ properties:
|
14
|
+
# * Required
|
15
|
+
# * event_type
|
16
|
+
# * url
|
17
|
+
# * Optional
|
18
|
+
# * tag
|
19
|
+
#
|
20
|
+
# @param +hook+ [Hook] model object of the hook to be created
|
21
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
22
|
+
# @return [Hook] the newly-created Hook entity object
|
23
|
+
def create(hook, id_key = nil)
|
24
|
+
uri = provide_uri(:create_hook)
|
25
|
+
response = HttpClient.post(uri, hook, id_key)
|
26
|
+
parse response
|
27
|
+
end
|
28
|
+
|
29
|
+
# Updates the hook entity identifiable by the provided
|
30
|
+
# Hook object's ID.
|
31
|
+
#
|
32
|
+
# +Hook+ optional properties:
|
33
|
+
# * tag
|
34
|
+
# * status
|
35
|
+
# * url
|
36
|
+
#
|
37
|
+
# @param +hook+ [Hook] hook object with corresponding ID
|
38
|
+
# and updated data
|
39
|
+
# @return [Hook] the updated Hook entity object
|
40
|
+
def update(hook)
|
41
|
+
uri = provide_uri(:update_hook, hook.id)
|
42
|
+
response = HttpClient.put(uri, hook)
|
43
|
+
parse response
|
44
|
+
end
|
45
|
+
|
46
|
+
# Retrieves a hook entity.
|
47
|
+
#
|
48
|
+
# @param +id+ [String] ID of the hook to retrieve
|
49
|
+
# @return [Hook] the requested Hook entity object
|
50
|
+
def get(id)
|
51
|
+
uri = provide_uri(:get_hook, id)
|
52
|
+
response = HttpClient.get(uri)
|
53
|
+
parse response
|
54
|
+
end
|
55
|
+
|
56
|
+
# Retrieves all hooks.
|
57
|
+
#
|
58
|
+
# Allowed +FilterRequest+ params:
|
59
|
+
# * page
|
60
|
+
# * per_page
|
61
|
+
# * sort_field and sort_direction
|
62
|
+
#
|
63
|
+
# @return [Array] Hook entity objects
|
64
|
+
def all
|
65
|
+
uri = provide_uri(:get_hooks)
|
66
|
+
results = HttpClient.get(uri)
|
67
|
+
parse_results results
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
# Parses an array of JSON-originating hashes into the corresponding
|
73
|
+
# Hook entity objects.
|
74
|
+
#
|
75
|
+
# @param +results+ [Array] JSON-originating data hashes
|
76
|
+
# @return [Array] parsed Hook entity objects
|
77
|
+
def parse_results(results)
|
78
|
+
results.collect do |entity|
|
79
|
+
parse entity
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
# Parses a JSON-originating hash into the corresponding
|
84
|
+
# Hook entity object.
|
85
|
+
#
|
86
|
+
# @param +response+ [Hash] JSON-originating data hash
|
87
|
+
# @return [Hook] corresponding Hook entity object
|
88
|
+
def parse(response)
|
89
|
+
MangoModel::Hook.new.dejsonify response
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
93
|
end
|
@@ -1,153 +1,153 @@
|
|
1
|
-
require_relative '../uri_provider'
|
2
|
-
require_relative '../../util/file_encoder'
|
3
|
-
require_relative '../../model/request/upload_file_request'
|
4
|
-
require_relative '../../model/request/submit_document_request'
|
5
|
-
|
6
|
-
module MangoApi
|
7
|
-
|
8
|
-
# Provides API method delegates concerning the +KycDocument+ entity
|
9
|
-
class KycDocuments
|
10
|
-
class << self
|
11
|
-
include UriProvider
|
12
|
-
|
13
|
-
# Creates a new KYC document entity.
|
14
|
-
#
|
15
|
-
# +KycDocument+ properties:
|
16
|
-
# * Required
|
17
|
-
# * type
|
18
|
-
# * Optional
|
19
|
-
# * tag
|
20
|
-
#
|
21
|
-
# @param +kyc_document+ [KycDocument] model object of the KYC document
|
22
|
-
# to be created
|
23
|
-
# @param +user_id+ [String] ID of the user who the document is being
|
24
|
-
# created for
|
25
|
-
# @param +id_key+ [String] idempotency key for future response replication
|
26
|
-
# @return [KycDocument] the newly-created KycDocument entity object
|
27
|
-
def create(kyc_document, user_id, id_key = nil)
|
28
|
-
uri = provide_uri(:create_kyc_document, user_id)
|
29
|
-
response = HttpClient.post(uri, kyc_document, id_key)
|
30
|
-
parse response
|
31
|
-
end
|
32
|
-
|
33
|
-
# Uploads a KYC document page. Allowed file extensions:
|
34
|
-
# .pdf .jpeg .jpg .gif .png
|
35
|
-
#
|
36
|
-
# @param +id+ [String] ID of the KYC document entity that the page
|
37
|
-
# is being uploaded for
|
38
|
-
# @param +user_id+ [String] ID of the user who the document is being
|
39
|
-
# updated for
|
40
|
-
# @param +path+ [String] path of the KYC document page image
|
41
|
-
def upload_page(id, user_id, path)
|
42
|
-
uri = provide_uri(:upload_kyc_document_page, user_id, id)
|
43
|
-
body = UploadFileRequest.new
|
44
|
-
body.file = FileEncoder.encode_base64 path
|
45
|
-
HttpClient.post(uri, body)
|
46
|
-
end
|
47
|
-
|
48
|
-
# Submits a KYC document entity for approval.
|
49
|
-
#
|
50
|
-
# @param +id+ [String] ID of the KYC document to submit
|
51
|
-
# @param +user_id+ [String] ID of the user who the document is being
|
52
|
-
# submitted for
|
53
|
-
# @param +tag+ [String] custom data to add with the request
|
54
|
-
# @return [KycDocument] the submitted KycDocument entity object
|
55
|
-
def submit(id, user_id, tag = nil)
|
56
|
-
uri = provide_uri(:submit_kyc_document, user_id, id)
|
57
|
-
request = SubmitDocumentRequest.new(tag)
|
58
|
-
response = HttpClient.put(uri, request)
|
59
|
-
parse response
|
60
|
-
end
|
61
|
-
|
62
|
-
# Retrieves pages of KYC document entities belonging to current
|
63
|
-
# environment's client. Allows configuration of paging and sorting
|
64
|
-
# parameters by yielding a filtering object to a provided block. When
|
65
|
-
# no filters are specified, will retrieve the first page of 10 newest
|
66
|
-
# results.
|
67
|
-
#
|
68
|
-
# Allowed +FilterRequest+ params:
|
69
|
-
# * page
|
70
|
-
# * per_page
|
71
|
-
# * sort_field and sort_direction
|
72
|
-
# * before_date
|
73
|
-
# * after_date
|
74
|
-
# * status
|
75
|
-
#
|
76
|
-
# @return [Array] the requested entities
|
77
|
-
def all
|
78
|
-
uri = provide_uri(:get_kyc_documents)
|
79
|
-
filter_request = nil
|
80
|
-
yield filter_request = FilterRequest.new if block_given?
|
81
|
-
results = HttpClient.get(uri, filter_request)
|
82
|
-
parse_docs results
|
83
|
-
end
|
84
|
-
|
85
|
-
# Retrieves pages of KYC document entities belonging to a certain
|
86
|
-
# user entity. Allows configuration of paging and sorting parameters by
|
87
|
-
# yielding a filtering object to a provided block. When no filters
|
88
|
-
# are specified, will retrieve the first page of 10 newest results.
|
89
|
-
#
|
90
|
-
# Allowed +FilterRequest+ params:
|
91
|
-
# * page
|
92
|
-
# * per_page
|
93
|
-
# * sort_field and sort_direction
|
94
|
-
# * before_date
|
95
|
-
# * after_date
|
96
|
-
# * status
|
97
|
-
#
|
98
|
-
# @param +id+ [String] ID of the user whose KYC documents to retrieve
|
99
|
-
# @return [Array] the requested entities
|
100
|
-
def of_user(id)
|
101
|
-
uri = provide_uri(:get_users_kyc_documents, id)
|
102
|
-
filter_request = nil
|
103
|
-
yield filter_request = FilterRequest.new if block_given?
|
104
|
-
results = HttpClient.get(uri, filter_request)
|
105
|
-
parse_docs results
|
106
|
-
end
|
107
|
-
|
108
|
-
# Creates temporary URLs where each page of a KYC document
|
109
|
-
# can be viewed.
|
110
|
-
#
|
111
|
-
# @param +id+ [String] ID of the KYC documents which to consult
|
112
|
-
# @return [Array] +DocumentPageConsult+s for the document's pages
|
113
|
-
def consult(id)
|
114
|
-
uri = provide_uri(:consult_kyc_document, id)
|
115
|
-
results = HttpClient.post(uri, nil)
|
116
|
-
parse_consults results
|
117
|
-
end
|
118
|
-
|
119
|
-
private
|
120
|
-
|
121
|
-
# Parses an array of JSON-originating hashes into the corresponding
|
122
|
-
# KycDocument entity objects.
|
123
|
-
#
|
124
|
-
# @param +results+ [Array] JSON-originating data hashes
|
125
|
-
# @return [Array] parsed KycDocument entity objects
|
126
|
-
def parse_docs(results)
|
127
|
-
results.collect do |entity|
|
128
|
-
parse entity
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
# Parses a JSON-originating hash into the corresponding
|
133
|
-
# KycDocument entity object.
|
134
|
-
#
|
135
|
-
# @param +response+ [Hash] JSON-originating data hash
|
136
|
-
# @return [KycDocument] corresponding KycDocument entity object
|
137
|
-
def parse(response)
|
138
|
-
MangoModel::KycDocument.new.dejsonify response
|
139
|
-
end
|
140
|
-
|
141
|
-
# Parses an array of JSON-originating hashes into the corresponding
|
142
|
-
# DocumentPageConsult entity objects.
|
143
|
-
#
|
144
|
-
# @param +results+ [Array] JSON-originating data hashes
|
145
|
-
# @return [Array] parsed DocumentPageConsult entity objects
|
146
|
-
def parse_consults(results)
|
147
|
-
results.collect do |entity|
|
148
|
-
MangoModel::DocumentPageConsult.new.dejsonify entity
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
1
|
+
require_relative '../uri_provider'
|
2
|
+
require_relative '../../util/file_encoder'
|
3
|
+
require_relative '../../model/request/upload_file_request'
|
4
|
+
require_relative '../../model/request/submit_document_request'
|
5
|
+
|
6
|
+
module MangoApi
|
7
|
+
|
8
|
+
# Provides API method delegates concerning the +KycDocument+ entity
|
9
|
+
class KycDocuments
|
10
|
+
class << self
|
11
|
+
include UriProvider
|
12
|
+
|
13
|
+
# Creates a new KYC document entity.
|
14
|
+
#
|
15
|
+
# +KycDocument+ properties:
|
16
|
+
# * Required
|
17
|
+
# * type
|
18
|
+
# * Optional
|
19
|
+
# * tag
|
20
|
+
#
|
21
|
+
# @param +kyc_document+ [KycDocument] model object of the KYC document
|
22
|
+
# to be created
|
23
|
+
# @param +user_id+ [String] ID of the user who the document is being
|
24
|
+
# created for
|
25
|
+
# @param +id_key+ [String] idempotency key for future response replication
|
26
|
+
# @return [KycDocument] the newly-created KycDocument entity object
|
27
|
+
def create(kyc_document, user_id, id_key = nil)
|
28
|
+
uri = provide_uri(:create_kyc_document, user_id)
|
29
|
+
response = HttpClient.post(uri, kyc_document, id_key)
|
30
|
+
parse response
|
31
|
+
end
|
32
|
+
|
33
|
+
# Uploads a KYC document page. Allowed file extensions:
|
34
|
+
# .pdf .jpeg .jpg .gif .png
|
35
|
+
#
|
36
|
+
# @param +id+ [String] ID of the KYC document entity that the page
|
37
|
+
# is being uploaded for
|
38
|
+
# @param +user_id+ [String] ID of the user who the document is being
|
39
|
+
# updated for
|
40
|
+
# @param +path+ [String] path of the KYC document page image
|
41
|
+
def upload_page(id, user_id, path)
|
42
|
+
uri = provide_uri(:upload_kyc_document_page, user_id, id)
|
43
|
+
body = UploadFileRequest.new
|
44
|
+
body.file = FileEncoder.encode_base64 path
|
45
|
+
HttpClient.post(uri, body)
|
46
|
+
end
|
47
|
+
|
48
|
+
# Submits a KYC document entity for approval.
|
49
|
+
#
|
50
|
+
# @param +id+ [String] ID of the KYC document to submit
|
51
|
+
# @param +user_id+ [String] ID of the user who the document is being
|
52
|
+
# submitted for
|
53
|
+
# @param +tag+ [String] custom data to add with the request
|
54
|
+
# @return [KycDocument] the submitted KycDocument entity object
|
55
|
+
def submit(id, user_id, tag = nil)
|
56
|
+
uri = provide_uri(:submit_kyc_document, user_id, id)
|
57
|
+
request = SubmitDocumentRequest.new(tag)
|
58
|
+
response = HttpClient.put(uri, request)
|
59
|
+
parse response
|
60
|
+
end
|
61
|
+
|
62
|
+
# Retrieves pages of KYC document entities belonging to current
|
63
|
+
# environment's client. Allows configuration of paging and sorting
|
64
|
+
# parameters by yielding a filtering object to a provided block. When
|
65
|
+
# no filters are specified, will retrieve the first page of 10 newest
|
66
|
+
# results.
|
67
|
+
#
|
68
|
+
# Allowed +FilterRequest+ params:
|
69
|
+
# * page
|
70
|
+
# * per_page
|
71
|
+
# * sort_field and sort_direction
|
72
|
+
# * before_date
|
73
|
+
# * after_date
|
74
|
+
# * status
|
75
|
+
#
|
76
|
+
# @return [Array] the requested entities
|
77
|
+
def all
|
78
|
+
uri = provide_uri(:get_kyc_documents)
|
79
|
+
filter_request = nil
|
80
|
+
yield filter_request = FilterRequest.new if block_given?
|
81
|
+
results = HttpClient.get(uri, filter_request)
|
82
|
+
parse_docs results
|
83
|
+
end
|
84
|
+
|
85
|
+
# Retrieves pages of KYC document entities belonging to a certain
|
86
|
+
# user entity. Allows configuration of paging and sorting parameters by
|
87
|
+
# yielding a filtering object to a provided block. When no filters
|
88
|
+
# are specified, will retrieve the first page of 10 newest results.
|
89
|
+
#
|
90
|
+
# Allowed +FilterRequest+ params:
|
91
|
+
# * page
|
92
|
+
# * per_page
|
93
|
+
# * sort_field and sort_direction
|
94
|
+
# * before_date
|
95
|
+
# * after_date
|
96
|
+
# * status
|
97
|
+
#
|
98
|
+
# @param +id+ [String] ID of the user whose KYC documents to retrieve
|
99
|
+
# @return [Array] the requested entities
|
100
|
+
def of_user(id)
|
101
|
+
uri = provide_uri(:get_users_kyc_documents, id)
|
102
|
+
filter_request = nil
|
103
|
+
yield filter_request = FilterRequest.new if block_given?
|
104
|
+
results = HttpClient.get(uri, filter_request)
|
105
|
+
parse_docs results
|
106
|
+
end
|
107
|
+
|
108
|
+
# Creates temporary URLs where each page of a KYC document
|
109
|
+
# can be viewed.
|
110
|
+
#
|
111
|
+
# @param +id+ [String] ID of the KYC documents which to consult
|
112
|
+
# @return [Array] +DocumentPageConsult+s for the document's pages
|
113
|
+
def consult(id)
|
114
|
+
uri = provide_uri(:consult_kyc_document, id)
|
115
|
+
results = HttpClient.post(uri, nil)
|
116
|
+
parse_consults results
|
117
|
+
end
|
118
|
+
|
119
|
+
private
|
120
|
+
|
121
|
+
# Parses an array of JSON-originating hashes into the corresponding
|
122
|
+
# KycDocument entity objects.
|
123
|
+
#
|
124
|
+
# @param +results+ [Array] JSON-originating data hashes
|
125
|
+
# @return [Array] parsed KycDocument entity objects
|
126
|
+
def parse_docs(results)
|
127
|
+
results.collect do |entity|
|
128
|
+
parse entity
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
# Parses a JSON-originating hash into the corresponding
|
133
|
+
# KycDocument entity object.
|
134
|
+
#
|
135
|
+
# @param +response+ [Hash] JSON-originating data hash
|
136
|
+
# @return [KycDocument] corresponding KycDocument entity object
|
137
|
+
def parse(response)
|
138
|
+
MangoModel::KycDocument.new.dejsonify response
|
139
|
+
end
|
140
|
+
|
141
|
+
# Parses an array of JSON-originating hashes into the corresponding
|
142
|
+
# DocumentPageConsult entity objects.
|
143
|
+
#
|
144
|
+
# @param +results+ [Array] JSON-originating data hashes
|
145
|
+
# @return [Array] parsed DocumentPageConsult entity objects
|
146
|
+
def parse_consults(results)
|
147
|
+
results.collect do |entity|
|
148
|
+
MangoModel::DocumentPageConsult.new.dejsonify entity
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
153
|
end
|