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,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 +ubo_declaration+ [UboDeclaration] model object of the
19
- # UBO declaration to be created
20
- # @param +user_id+ [String] ID of the user who the declaration is
21
- # being created for
22
- # @return [UboDeclaration] the newly-created UboDeclaration entity object
23
- def create(ubo_declaration, user_id, id_key = nil)
24
- uri = provide_uri(:create_ubo_declaration, user_id)
25
- response = HttpClient.post(uri, ubo_declaration, id_key)
26
- parse response
27
- end
28
-
29
- # Updates the UBO declaration entity identifiable by the provided
30
- # +UboDeclaration+ object's ID.
31
- #
32
- # +UboDeclaration+ optional properties:
33
- # * tag
34
- # * status
35
- # * declared_ubos
36
- #
37
- # @param +ubo_declaration+ [UboDeclaration] UBO declaration object
38
- # with corresponding ID and updated data
39
- # @return [UboDeclaration] the updated UboDeclaration entity object
40
- def update(ubo_declaration)
41
- uri = provide_uri(:update_ubo_declaration, ubo_declaration.id)
42
- response = HttpClient.put(uri, ubo_declaration)
43
- parse response
44
- end
45
-
46
- # Submits a UBO declaration entity for approval.
47
- #
48
- # @param +id+ [String] ID of the UBO declaration to submit
49
- # @param +tag+ [String] custom data to add with the request
50
- # @return [UboDeclaration] the submitted UboDeclaration entity object
51
- def submit(id, tag = nil)
52
- uri = provide_uri(:submit_ubo_declaration, id)
53
- submit_request = SubmitUboDeclarationRequest.new(tag)
54
- response = HttpClient.put(uri, submit_request)
55
- parse response
56
- end
57
-
58
- private
59
-
60
- # Parses a JSON-originating hash into the corresponding
61
- # UboDeclaration entity object.
62
- #
63
- # @param +response+ [Hash] JSON-originating data hash
64
- # @return [UboDeclaration] corresponding UboDeclaration entity object
65
- def parse(response)
66
- MangoModel::UboDeclaration.new.dejsonify response
67
- end
68
- end
69
- end
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