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.
Files changed (234) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +29 -29
  3. data/.rspec +3 -3
  4. data/.rubocop.yml +1 -1
  5. data/.travis.yml +21 -13
  6. data/Gemfile +2 -2
  7. data/LICENSE +20 -20
  8. data/README.md +379 -379
  9. data/bin/mangopay +9 -9
  10. data/lib/mangopay.rb +132 -132
  11. data/lib/mangopay/api/api.rb +8 -8
  12. data/lib/mangopay/api/api_methods.rb +160 -136
  13. data/lib/mangopay/api/auth_token_manager.rb +173 -173
  14. data/lib/mangopay/api/http_client.rb +324 -324
  15. data/lib/mangopay/api/service/bank_accounts.rb +145 -145
  16. data/lib/mangopay/api/service/banking_aliases.rb +83 -0
  17. data/lib/mangopay/api/service/cards.rb +151 -151
  18. data/lib/mangopay/api/service/client_wallets.rb +88 -88
  19. data/lib/mangopay/api/service/clients.rb +67 -67
  20. data/lib/mangopay/api/service/dispute_documents.rb +157 -157
  21. data/lib/mangopay/api/service/disputes.rb +186 -186
  22. data/lib/mangopay/api/service/e_money.rb +63 -41
  23. data/lib/mangopay/api/service/events.rb +46 -46
  24. data/lib/mangopay/api/service/hooks.rb +92 -92
  25. data/lib/mangopay/api/service/kyc_documents.rb +152 -152
  26. data/lib/mangopay/api/service/mandates.rb +141 -141
  27. data/lib/mangopay/api/service/oauth_tokens.rb +24 -24
  28. data/lib/mangopay/api/service/pay_ins.rb +369 -259
  29. data/lib/mangopay/api/service/pay_outs.rb +53 -53
  30. data/lib/mangopay/api/service/pre_authorizations.rb +126 -68
  31. data/lib/mangopay/api/service/refunds.rb +159 -61
  32. data/lib/mangopay/api/service/reports.rb +150 -150
  33. data/lib/mangopay/api/service/repudiations.rb +31 -31
  34. data/lib/mangopay/api/service/responses.rb +101 -101
  35. data/lib/mangopay/api/service/settlement_transfers.rb +54 -54
  36. data/lib/mangopay/api/service/transactions.rb +246 -182
  37. data/lib/mangopay/api/service/transfers.rb +53 -53
  38. data/lib/mangopay/api/service/ubo_declarations.rb +94 -69
  39. data/lib/mangopay/api/service/users.rb +162 -162
  40. data/lib/mangopay/api/service/wallets.rb +98 -98
  41. data/lib/mangopay/api/uri_provider.rb +32 -34
  42. data/lib/mangopay/common/json_tag_converter.rb +70 -67
  43. data/lib/mangopay/common/jsonifier.rb +266 -248
  44. data/lib/mangopay/common/log_provider.rb +33 -33
  45. data/lib/mangopay/common/rate_limit_interval.rb +16 -16
  46. data/lib/mangopay/common/read_only_fields.rb +26 -26
  47. data/lib/mangopay/common/response_error.rb +61 -61
  48. data/lib/mangopay/common/sort_direction.rb +14 -14
  49. data/lib/mangopay/common/sort_field.rb +12 -12
  50. data/lib/mangopay/common/template_url_options.rb +8 -8
  51. data/lib/mangopay/configuration.rb +38 -38
  52. data/lib/mangopay/environment.rb +65 -65
  53. data/lib/mangopay/model/address.rb +26 -26
  54. data/lib/mangopay/model/billing.rb +13 -0
  55. data/lib/mangopay/model/birthplace.rb +15 -0
  56. data/lib/mangopay/model/declared_ubo.rb +20 -20
  57. data/lib/mangopay/model/dispute_reason.rb +14 -14
  58. data/lib/mangopay/model/document_page_consult.rb +14 -14
  59. data/lib/mangopay/model/e_money.rb +17 -17
  60. data/lib/mangopay/model/entity/account/bank_account.rb +25 -25
  61. data/lib/mangopay/model/entity/account/ca_bank_account.rb +26 -26
  62. data/lib/mangopay/model/entity/account/debited_bank_account.rb +31 -0
  63. data/lib/mangopay/model/entity/account/gb_bank_account.rb +20 -20
  64. data/lib/mangopay/model/entity/account/iban_bank_account.rb +20 -20
  65. data/lib/mangopay/model/entity/account/other_bank_account.rb +23 -23
  66. data/lib/mangopay/model/entity/account/us_bank_account.rb +23 -23
  67. data/lib/mangopay/model/entity/banking_alias.rb +27 -0
  68. data/lib/mangopay/model/entity/card.rb +44 -44
  69. data/lib/mangopay/model/entity/card_registration.rb +42 -42
  70. data/lib/mangopay/model/entity/client.rb +65 -62
  71. data/lib/mangopay/model/entity/client_wallet.rb +22 -22
  72. data/lib/mangopay/model/entity/dispute.rb +49 -49
  73. data/lib/mangopay/model/entity/dispute_document.rb +28 -28
  74. data/lib/mangopay/model/entity/entity_base.rb +17 -17
  75. data/lib/mangopay/model/entity/hook.rb +25 -25
  76. data/lib/mangopay/model/entity/kyc_document.rb +27 -27
  77. data/lib/mangopay/model/entity/mandate.rb +50 -50
  78. data/lib/mangopay/model/entity/pay_in/apple_pay_direct_pay_in.rb +26 -0
  79. data/lib/mangopay/model/entity/pay_in/bank_wire_direct_pay_in.rb +24 -21
  80. data/lib/mangopay/model/entity/pay_in/bank_wire_external_instruction_pay_in.rb +19 -0
  81. data/lib/mangopay/model/entity/pay_in/card_direct_pay_in.rb +41 -32
  82. data/lib/mangopay/model/entity/pay_in/card_pre_authorized_pay_in.rb +15 -12
  83. data/lib/mangopay/model/entity/pay_in/card_web_pay_in.rb +36 -39
  84. data/lib/mangopay/model/entity/pay_in/direct_debit_direct_pay_in.rb +25 -22
  85. data/lib/mangopay/model/entity/pay_in/direct_debit_web_pay_in.rb +37 -37
  86. data/lib/mangopay/model/entity/pay_in/google_pay_direct_pay_in.rb +28 -0
  87. data/lib/mangopay/model/entity/pay_in/pay_in.rb +18 -15
  88. data/lib/mangopay/model/entity/pay_in/paypal_web_pay_in.rb +15 -0
  89. data/lib/mangopay/model/entity/pay_out.rb +21 -21
  90. data/lib/mangopay/model/entity/pre_authorization.rb +74 -67
  91. data/lib/mangopay/model/entity/refund.rb +17 -17
  92. data/lib/mangopay/model/entity/report.rb +50 -50
  93. data/lib/mangopay/model/entity/repudiation.rb +17 -17
  94. data/lib/mangopay/model/entity/settlement_transfer.rb +16 -16
  95. data/lib/mangopay/model/entity/transaction.rb +51 -51
  96. data/lib/mangopay/model/entity/transfer.rb +12 -12
  97. data/lib/mangopay/model/entity/ubo.rb +30 -0
  98. data/lib/mangopay/model/entity/ubo_declaration.rb +29 -31
  99. data/lib/mangopay/model/entity/user/legal_user.rb +55 -52
  100. data/lib/mangopay/model/entity/user/natural_user.rb +49 -49
  101. data/lib/mangopay/model/entity/user/user.rb +17 -17
  102. data/lib/mangopay/model/entity/wallet.rb +27 -27
  103. data/lib/mangopay/model/enum/account_type.rb +23 -23
  104. data/lib/mangopay/model/enum/avs_result.rb +19 -0
  105. data/lib/mangopay/model/enum/banking_alias_type.rb +12 -0
  106. data/lib/mangopay/model/enum/business_type.rb +17 -0
  107. data/lib/mangopay/model/enum/card_status.rb +14 -14
  108. data/lib/mangopay/model/enum/card_type.rb +32 -32
  109. data/lib/mangopay/model/enum/card_validity.rb +18 -18
  110. data/lib/mangopay/model/enum/country_iso.rb +758 -758
  111. data/lib/mangopay/model/enum/culture_code.rb +43 -43
  112. data/lib/mangopay/model/enum/currency_iso.rb +551 -551
  113. data/lib/mangopay/model/enum/declared_ubo_refused_reason_type.rb +15 -15
  114. data/lib/mangopay/model/enum/declared_ubo_status.rb +17 -17
  115. data/lib/mangopay/model/enum/deposit_type.rb +14 -14
  116. data/lib/mangopay/model/enum/direct_debit_type.rb +12 -12
  117. data/lib/mangopay/model/enum/dispute_doc_refused_reason_type.rb +24 -24
  118. data/lib/mangopay/model/enum/dispute_document_type.rb +22 -22
  119. data/lib/mangopay/model/enum/dispute_reason_type.rb +32 -32
  120. data/lib/mangopay/model/enum/dispute_status.rb +20 -20
  121. data/lib/mangopay/model/enum/dispute_type.rb +14 -14
  122. data/lib/mangopay/model/enum/document_status.rb +20 -20
  123. data/lib/mangopay/model/enum/download_format.rb +10 -10
  124. data/lib/mangopay/model/enum/event_type.rb +76 -73
  125. data/lib/mangopay/model/enum/funds_type.rb +14 -14
  126. data/lib/mangopay/model/enum/hook_status.rb +12 -12
  127. data/lib/mangopay/model/enum/hook_validity.rb +14 -14
  128. data/lib/mangopay/model/enum/income_range.rb +20 -20
  129. data/lib/mangopay/model/enum/kyc_doc_refused_reason_type.rb +36 -36
  130. data/lib/mangopay/model/enum/kyc_document_type.rb +18 -18
  131. data/lib/mangopay/model/enum/kyc_level.rb +12 -12
  132. data/lib/mangopay/model/enum/legal_person_type.rb +14 -14
  133. data/lib/mangopay/model/enum/mandate_culture_code.rb +22 -22
  134. data/lib/mangopay/model/enum/mandate_execution_type.rb +10 -10
  135. data/lib/mangopay/model/enum/mandate_scheme.rb +12 -12
  136. data/lib/mangopay/model/enum/mandate_status.rb +23 -23
  137. data/lib/mangopay/model/enum/mandate_type.rb +10 -10
  138. data/lib/mangopay/model/enum/natural_user_capacity.rb +14 -14
  139. data/lib/mangopay/model/enum/pay_in_execution_type.rb +17 -17
  140. data/lib/mangopay/model/enum/pay_in_payment_type.rb +29 -20
  141. data/lib/mangopay/model/enum/pay_out_payment_type.rb +10 -10
  142. data/lib/mangopay/model/enum/payment_status.rb +20 -20
  143. data/lib/mangopay/model/enum/person_type.rb +14 -14
  144. data/lib/mangopay/model/enum/platform_type.rb +22 -22
  145. data/lib/mangopay/model/enum/pre_authorization_execution_type.rb +10 -10
  146. data/lib/mangopay/model/enum/pre_authorization_status.rb +17 -17
  147. data/lib/mangopay/model/enum/refund_reason_type.rb +20 -20
  148. data/lib/mangopay/model/enum/report_status.rb +16 -16
  149. data/lib/mangopay/model/enum/report_type.rb +12 -12
  150. data/lib/mangopay/model/enum/sector.rb +29 -0
  151. data/lib/mangopay/model/enum/secure_mode.rb +15 -15
  152. data/lib/mangopay/model/enum/transaction_nature.rb +16 -16
  153. data/lib/mangopay/model/enum/transaction_status.rb +14 -14
  154. data/lib/mangopay/model/enum/transaction_type.rb +14 -14
  155. data/lib/mangopay/model/enum/ubo_declaration_refused_reason_type.rb +18 -18
  156. data/lib/mangopay/model/enum/ubo_declaration_status.rb +20 -20
  157. data/lib/mangopay/model/event.rb +17 -17
  158. data/lib/mangopay/model/model.rb +214 -193
  159. data/lib/mangopay/model/money.rb +16 -16
  160. data/lib/mangopay/model/pay_in_web_extended_view.rb +30 -30
  161. data/lib/mangopay/model/platform_categorization.rb +15 -0
  162. data/lib/mangopay/model/refund_reason.rb +14 -14
  163. data/lib/mangopay/model/report_filter.rb +82 -82
  164. data/lib/mangopay/model/request/cancel_request.rb +15 -15
  165. data/lib/mangopay/model/request/complete_registration_request.rb +12 -12
  166. data/lib/mangopay/model/request/currency_request.rb +12 -12
  167. data/lib/mangopay/model/request/deactivation_request.rb +9 -9
  168. data/lib/mangopay/model/request/filter_request.rb +37 -37
  169. data/lib/mangopay/model/request/submit_document_request.rb +13 -13
  170. data/lib/mangopay/model/request/submit_ubo_declaration_request.rb +16 -13
  171. data/lib/mangopay/model/request/upload_file_request.rb +8 -8
  172. data/lib/mangopay/model/response_replica.rb +26 -26
  173. data/lib/mangopay/model/security_info.rb +13 -0
  174. data/lib/mangopay/util/custom_formatter.rb +11 -11
  175. data/lib/mangopay/util/custom_logger.rb +33 -33
  176. data/lib/mangopay/util/enum.rb +51 -51
  177. data/lib/mangopay/util/file_encoder.rb +15 -15
  178. data/lib/mangopay/util/non_instantiable.rb +5 -5
  179. data/lib/mangopay/util/storage_strategy.rb +9 -9
  180. data/lib/mangopay/util/void_logger.rb +5 -5
  181. data/mangopay-v4.gemspec +32 -0
  182. data/mangopay.gemspec +32 -32
  183. data/spec/context/address_context.rb +24 -24
  184. data/spec/context/bank_account_context.rb +137 -137
  185. data/spec/context/banking_alias_context.rb +17 -0
  186. data/spec/context/birthplace_context.rb +17 -0
  187. data/spec/context/card_context.rb +45 -45
  188. data/spec/context/client_context.rb +43 -44
  189. data/spec/context/dispute_context.rb +36 -36
  190. data/spec/context/dispute_document_context.rb +19 -19
  191. data/spec/context/hook_context.rb +15 -15
  192. data/spec/context/kyc_document_context.rb +22 -22
  193. data/spec/context/mandate_context.rb +26 -26
  194. data/spec/context/pay_in_context.rb +319 -224
  195. data/spec/context/pay_out_context.rb +39 -38
  196. data/spec/context/pre_authorization_context.rb +44 -40
  197. data/spec/context/refund_context.rb +32 -32
  198. data/spec/context/report_context.rb +21 -21
  199. data/spec/context/repudiation_context.rb +18 -18
  200. data/spec/context/settlement_transfer_context.rb +27 -27
  201. data/spec/context/transfer_context.rb +50 -50
  202. data/spec/context/ubo_declaration_context.rb +29 -24
  203. data/spec/context/user_context.rb +83 -82
  204. data/spec/context/wallet_context.rb +52 -52
  205. data/spec/mangopay/bank_accounts_spec.rb +228 -228
  206. data/spec/mangopay/banking_alias_spec.rb +85 -0
  207. data/spec/mangopay/cards_spec.rb +133 -134
  208. data/spec/mangopay/client_wallets_spec.rb +147 -147
  209. data/spec/mangopay/clients_spec.rb +56 -54
  210. data/spec/mangopay/configuration_spec.rb +125 -125
  211. data/spec/mangopay/dispute_documents_spec.rb +173 -173
  212. data/spec/mangopay/disputes_spec.rb +264 -264
  213. data/spec/mangopay/e_money_spec.rb +57 -37
  214. data/spec/mangopay/events_spec.rb +49 -49
  215. data/spec/mangopay/hooks_spec.rb +70 -70
  216. data/spec/mangopay/kyc_documents_spec.rb +179 -179
  217. data/spec/mangopay/mandates_spec.rb +218 -218
  218. data/spec/mangopay/oauth_tokens_spec.rb +40 -40
  219. data/spec/mangopay/pay_ins_spec.rb +279 -180
  220. data/spec/mangopay/pay_outs_spec.rb +38 -38
  221. data/spec/mangopay/pre_authorizations_spec.rb +134 -57
  222. data/spec/mangopay/refunds_spec.rb +187 -39
  223. data/spec/mangopay/reports_spec.rb +118 -120
  224. data/spec/mangopay/responses_spec.rb +324 -294
  225. data/spec/mangopay/settlement_transfers_spec.rb +36 -36
  226. data/spec/mangopay/transactions_spec.rb +347 -232
  227. data/spec/mangopay/transfers_spec.rb +37 -37
  228. data/spec/mangopay/ubo_declarations_spec.rb +127 -64
  229. data/spec/mangopay/users_spec.rb +145 -145
  230. data/spec/mangopay/wallets_spec.rb +103 -103
  231. data/spec/spec_helper.rb +72 -72
  232. data/spec/tmp/MangoPay.AuthorizationToken.FileStore.tmp +6 -0
  233. data/spec/tmp/mangopay.log.tmp +1201 -0
  234. 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