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,16 +1,16 @@
1
- require_relative '../../util/enum'
2
-
3
- module MangoModel
4
-
5
- # Secure modes enumeration
6
- class SecureMode
7
- extend Enum
8
-
9
- # Automatic activation of the Secure Mode, when transaction
10
- # is higher than 50 EUR or when MangoPay detects there is a higher risk
11
- DEFAULT = value 'DEFAULT'
12
-
13
- # Force activation of the Secure Mode for a transaction
14
- FORCE = value 'FORCE'
15
- end
1
+ require_relative '../../util/enum'
2
+
3
+ module MangoModel
4
+
5
+ # Secure modes enumeration
6
+ class SecureMode
7
+ extend Enum
8
+
9
+ # Automatic activation of the Secure Mode, when transaction
10
+ # is higher than 50 EUR or when MangoPay detects there is a higher risk
11
+ DEFAULT = value 'DEFAULT'
12
+
13
+ # Force activation of the Secure Mode for a transaction
14
+ FORCE = value 'FORCE'
15
+ end
16
16
  end
@@ -1,17 +1,17 @@
1
- require_relative '../../util/enum'
2
-
3
- module MangoModel
4
-
5
- # Transaction nature enumeration
6
- class TransactionNature
7
- extend Enum
8
-
9
- REGULAR = value 'REGULAR'
10
-
11
- REPUDIATION = value 'REPUDIATION'
12
-
13
- REFUND = value 'REFUND'
14
-
15
- SETTLEMENT = value 'SETTLEMENT'
16
- end
1
+ require_relative '../../util/enum'
2
+
3
+ module MangoModel
4
+
5
+ # Transaction nature enumeration
6
+ class TransactionNature
7
+ extend Enum
8
+
9
+ REGULAR = value 'REGULAR'
10
+
11
+ REPUDIATION = value 'REPUDIATION'
12
+
13
+ REFUND = value 'REFUND'
14
+
15
+ SETTLEMENT = value 'SETTLEMENT'
16
+ end
17
17
  end
@@ -1,15 +1,15 @@
1
- require_relative '../../util/enum'
2
-
3
- module MangoModel
4
-
5
- # Transaction status enumeration
6
- class TransactionStatus
7
- extend Enum
8
-
9
- CREATED = value 'CREATED'
10
-
11
- SUCCEEDED = value 'SUCCEEDED'
12
-
13
- FAILED = value 'FAILED'
14
- end
1
+ require_relative '../../util/enum'
2
+
3
+ module MangoModel
4
+
5
+ # Transaction status enumeration
6
+ class TransactionStatus
7
+ extend Enum
8
+
9
+ CREATED = value 'CREATED'
10
+
11
+ SUCCEEDED = value 'SUCCEEDED'
12
+
13
+ FAILED = value 'FAILED'
14
+ end
15
15
  end
@@ -1,15 +1,15 @@
1
- require_relative '../../util/enum'
2
-
3
- module MangoModel
4
-
5
- # Transaction types enumeration
6
- class TransactionType
7
- extend Enum
8
-
9
- PAYIN = value 'PAYIN'
10
-
11
- PAYOUT = value 'PAYOUT'
12
-
13
- TRANSFER = value 'TRANSFER'
14
- end
1
+ require_relative '../../util/enum'
2
+
3
+ module MangoModel
4
+
5
+ # Transaction types enumeration
6
+ class TransactionType
7
+ extend Enum
8
+
9
+ PAYIN = value 'PAYIN'
10
+
11
+ PAYOUT = value 'PAYOUT'
12
+
13
+ TRANSFER = value 'TRANSFER'
14
+ end
15
15
  end
@@ -1,19 +1,19 @@
1
- require_relative '../../util/enum'
2
-
3
- module MangoModel
4
-
5
- # UBO Declaration refusal reasons enumeration
6
- class UboDeclarationRefusedReasonType
7
- extend Enum
8
-
9
- # At least one natural user is missing from the declaration
10
- MISSING_UBO = value 'MISSING_UBO'
11
-
12
- # At least one of the natural users should not be declared as UBO
13
- INVALID_DECLARED_UBO = value 'INVALID_DECLARED_UBO'
14
-
15
- # At least one of the natural users declared as UBOs has been
16
- # created with wrong details (i.e. date of birth, country of residence)
17
- INVALID_UBO_DETAILS = value 'INVALID_UBO_DETAILS'
18
- end
1
+ require_relative '../../util/enum'
2
+
3
+ module MangoModel
4
+
5
+ # UBO Declaration refusal reasons enumeration
6
+ class UboDeclarationRefusedReasonType
7
+ extend Enum
8
+
9
+ # At least one natural user is missing from the declaration
10
+ MISSING_UBO = value 'MISSING_UBO'
11
+
12
+ # At least one of the natural users should not be declared as UBO
13
+ INVALID_DECLARED_UBO = value 'INVALID_DECLARED_UBO'
14
+
15
+ # At least one of the natural users declared as UBOs has been
16
+ # created with wrong details (i.e. date of birth, country of residence)
17
+ INVALID_UBO_DETAILS = value 'INVALID_UBO_DETAILS'
18
+ end
19
19
  end
@@ -1,21 +1,21 @@
1
- require_relative '../../util/enum'
2
-
3
- module MangoModel
4
-
5
- # UBO Declaration status enumeration
6
- class UboDeclarationStatus
7
- extend Enum
8
-
9
- # UBO declaration has been created
10
- CREATED = value 'CREATED'
11
-
12
- # UBO declaration has been submitted for validation
13
- VALIDATION_ASKED = value 'VALIDATION_ASKED'
14
-
15
- # UBO declaration has been validated
16
- VALIDATED = value 'VALIDATED'
17
-
18
- # UBO declaration has been refused
19
- REFUSED = value 'REFUSED'
20
- end
1
+ require_relative '../../util/enum'
2
+
3
+ module MangoModel
4
+
5
+ # UBO Declaration status enumeration
6
+ class UboDeclarationStatus
7
+ extend Enum
8
+
9
+ # UBO declaration has been created
10
+ CREATED = value 'CREATED'
11
+
12
+ # UBO declaration has been submitted for validation
13
+ VALIDATION_ASKED = value 'VALIDATION_ASKED'
14
+
15
+ # UBO declaration has been validated
16
+ VALIDATED = value 'VALIDATED'
17
+
18
+ # UBO declaration has been refused
19
+ REFUSED = value 'REFUSED'
20
+ end
21
21
  end
@@ -1,18 +1,18 @@
1
- require_relative '../common/jsonifier'
2
-
3
- module MangoModel
4
-
5
- # The Event entity
6
- class Event
7
- include MangoPay::Jsonifier
8
-
9
- # [String] Its ID
10
- attr_accessor :resource_id
11
-
12
- # [Integer] Time when the event happened (UNIX timestamp)
13
- attr_accessor :date
14
-
15
- # [EventType] Its type
16
- attr_accessor :event_type
17
- end
1
+ require_relative '../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # The Event entity
6
+ class Event
7
+ include MangoPay::Jsonifier
8
+
9
+ # [String] Its ID
10
+ attr_accessor :resource_id
11
+
12
+ # [Integer] Time when the event happened (UNIX timestamp)
13
+ attr_accessor :date
14
+
15
+ # [EventType] Its type
16
+ attr_accessor :event_type
17
+ end
18
18
  end
@@ -1,194 +1,215 @@
1
- require 'date'
2
- require_relative 'entity/entity_base'
3
- require_relative 'enum/country_iso'
4
- require_relative 'enum/person_type'
5
- require_relative 'enum/legal_person_type'
6
- require_relative 'enum/income_range'
7
- require_relative 'enum/kyc_level'
8
- require_relative 'enum/deposit_type'
9
- require_relative 'enum/currency_iso'
10
- require_relative 'enum/funds_type'
11
- require_relative 'enum/platform_type'
12
- require_relative 'enum/account_type'
13
- require_relative 'enum/transaction_type'
14
- require_relative 'enum/transaction_nature'
15
- require_relative 'enum/transaction_status'
16
- require_relative 'enum/pay_in_payment_type'
17
- require_relative 'enum/pay_in_execution_type'
18
- require_relative 'enum/card_type'
19
- require_relative 'enum/secure_mode'
20
- require_relative 'enum/culture_code'
21
- require_relative 'enum/card_status'
22
- require_relative 'enum/card_validity'
23
- require_relative 'enum/pre_authorization_status'
24
- require_relative 'enum/pre_authorization_execution_type'
25
- require_relative 'enum/payment_status'
26
- require_relative 'enum/direct_debit_type'
27
- require_relative 'enum/mandate_scheme'
28
- require_relative 'enum/mandate_status'
29
- require_relative 'enum/mandate_type'
30
- require_relative 'enum/mandate_execution_type'
31
- require_relative 'enum/pay_out_payment_type'
32
- require_relative 'enum/kyc_doc_refused_reason_type'
33
- require_relative 'enum/kyc_document_type'
34
- require_relative 'enum/document_status'
35
- require_relative 'enum/natural_user_capacity'
36
- require_relative 'enum/ubo_declaration_status'
37
- require_relative 'enum/ubo_declaration_refused_reason_type'
38
- require_relative 'enum/declared_ubo_status'
39
- require_relative 'enum/declared_ubo_refused_reason_type'
40
- require_relative 'enum/hook_validity'
41
- require_relative 'enum/event_type'
42
- require_relative 'enum/refund_reason_type'
43
- require_relative 'enum/dispute_type'
44
- require_relative 'enum/dispute_reason_type'
45
- require_relative 'enum/dispute_status'
46
- require_relative 'enum/dispute_doc_refused_reason_type'
47
- require_relative 'enum/download_format'
48
- require_relative 'enum/report_type'
49
- require_relative 'enum/report_status'
50
- require_relative 'entity/user/user'
51
- require_relative 'entity/user/natural_user'
52
- require_relative 'entity/user/legal_user'
53
- require_relative 'entity/card'
54
- require_relative 'entity/client'
55
- require_relative 'entity/transaction'
56
- require_relative 'entity/transfer'
57
- require_relative 'entity/pre_authorization'
58
- require_relative 'entity/repudiation'
59
- require_relative 'entity/settlement_transfer'
60
- require_relative 'event'
61
- require_relative 'address'
62
- require_relative 'money'
63
- require_relative 'entity/wallet'
64
- require_relative 'e_money'
65
- require_relative 'refund_reason'
66
- require_relative 'document_page_consult'
67
- require_relative 'dispute_reason'
68
-
69
- # Module for model classes.
70
- module MangoModel
71
-
72
- # Maps each type to its existing declared field names.
73
- @fields_by_type = {
74
- DateTime => %w[date],
75
- PersonType => %w[person_type],
76
- KycLevel => %w[kyc_level],
77
- LegalPersonType => %w[legal_person_type],
78
- CountryIso => %w[country
79
- nationality
80
- country_of_residence
81
- legal_representative_nationality
82
- legal_representative_country_of_residence],
83
- Address => %w[address
84
- headquarters_address
85
- legal_representative_address
86
- owner_address],
87
- DepositType => %w[deposit_account_type],
88
- Money => %w[balance
89
- credited_e_money
90
- debited_e_money
91
- debited_funds
92
- credited_funds
93
- fees
94
- declared_debited_funds
95
- declared_fees
96
- disputed_funds
97
- contested_funds],
98
- CurrencyIso => %w[currency],
99
- FundsType => %w[funds_type],
100
- PlatformType => %w[platform_type],
101
- TransactionNature => %w[nature],
102
- TransactionStatus => %w[status],
103
- TransactionType => %w[type initial_transaction_type],
104
- PayInPaymentType => %w[payment_type],
105
- PayInExecutionType => %w[execution_type],
106
- CardType => %w[card_type],
107
- SecureMode => %w[secure_mode],
108
- CultureCode => %w[culture],
109
- CardValidity => %w[validity],
110
- PaymentStatus => %w[payment_status],
111
- DirectDebitType => %w[direct_debit_type],
112
- MandateScheme => %w[scheme],
113
- MandateType => %w[mandate_type],
114
- KycDocRefusedReasonType => %w[refused_reason_type],
115
- NaturalUserCapacity => %w[capacity],
116
- EventType => %w[event_type],
117
- RefundReason => %w[refund_reason],
118
- RefundReasonType => %w[refund_reason_type],
119
- DisputeType => %w[dispute_type],
120
- DisputeReason => %w[dispute_reason],
121
- DisputeReasonType => %w[dispute_reason_type],
122
- DownloadFormat => %w[download_format],
123
- ReportType => %w[report_type]
124
- }
125
-
126
- class << self
127
-
128
- # Returns an array containing all declared
129
- # field names of a certain type
130
- #
131
- # noinspection RubyResolve
132
- def fields_of_type(type)
133
- @fields_by_type[type]
134
- end
135
-
136
- # Asserts the type of pay-in represented by a hash
137
- #
138
- # @param +hash+ [Hash] source hash
139
- # @return [Class] type of pay-in represented by the hash
140
- def pay_in_type(hash)
141
- if hash['PaymentType'] == PayInPaymentType::CARD.to_s\
142
- && hash['ExecutionType'] == PayInExecutionType::WEB.to_s
143
- CardWebPayIn
144
- elsif hash['PaymentType'] == PayInPaymentType::CARD.to_s\
145
- && hash['ExecutionType'] == PayInExecutionType::DIRECT.to_s
146
- CardDirectPayIn
147
- elsif hash['PaymentType'] == PayInPaymentType::PREAUTHORIZED.to_s\
148
- && hash['ExecutionType'] == PayInExecutionType::DIRECT.to_s
149
- CardPreAuthorizedPayIn
150
- elsif hash['PaymentType'] == PayInPaymentType::BANK_WIRE.to_s\
151
- && hash['ExecutionType'] == PayInExecutionType::DIRECT.to_s
152
- BankWireDirectPayIn
153
- elsif hash['PaymentType'] == PayInPaymentType::DIRECT_DEBIT.to_s\
154
- && hash['ExecutionType'] == PayInExecutionType::WEB.to_s
155
- DirectDebitWebPayIn
156
- elsif hash['PaymentType'] == PayInPaymentType::DIRECT_DEBIT.to_s\
157
- && hash['ExecutionType'] == PayInExecutionType::DIRECT.to_s
158
- DirectDebitDirectPayIn
159
- end
160
- end
161
-
162
- # Asserts the type of bank account represented by a hash.
163
- #
164
- # @param +hash+ [Hash] source hash
165
- # @return [Class] type of bank account represented by the hash
166
- def bank_account_type(hash)
167
- case hash['Type']
168
- when AccountType::IBAN.to_s
169
- IbanBankAccount
170
- when AccountType::US.to_s
171
- UsBankAccount
172
- when AccountType::CA.to_s
173
- CaBankAccount
174
- when AccountType::GB.to_s
175
- GbBankAccount
176
- else
177
- OtherBankAccount
178
- end
179
- end
180
-
181
- # Asserts the type of user represented by a hash.
182
- #
183
- # @param +hash+ [Hash] source hash
184
- # @return [Class] type of user represented by the hash
185
- def user_type(hash)
186
- case hash['PersonType']
187
- when PersonType::NATURAL.to_s
188
- NaturalUser
189
- else
190
- LegalUser
191
- end
192
- end
193
- end
1
+ require 'date'
2
+ require_relative 'entity/entity_base'
3
+ require_relative 'enum/country_iso'
4
+ require_relative 'enum/person_type'
5
+ require_relative 'enum/legal_person_type'
6
+ require_relative 'enum/income_range'
7
+ require_relative 'enum/kyc_level'
8
+ require_relative 'enum/deposit_type'
9
+ require_relative 'enum/currency_iso'
10
+ require_relative 'enum/funds_type'
11
+ require_relative 'enum/platform_type'
12
+ require_relative 'enum/account_type'
13
+ require_relative 'enum/transaction_type'
14
+ require_relative 'enum/transaction_nature'
15
+ require_relative 'enum/transaction_status'
16
+ require_relative 'enum/pay_in_payment_type'
17
+ require_relative 'enum/pay_in_execution_type'
18
+ require_relative 'enum/card_type'
19
+ require_relative 'enum/secure_mode'
20
+ require_relative 'enum/culture_code'
21
+ require_relative 'enum/card_status'
22
+ require_relative 'enum/card_validity'
23
+ require_relative 'enum/pre_authorization_status'
24
+ require_relative 'enum/pre_authorization_execution_type'
25
+ require_relative 'enum/payment_status'
26
+ require_relative 'enum/direct_debit_type'
27
+ require_relative 'enum/mandate_scheme'
28
+ require_relative 'enum/mandate_status'
29
+ require_relative 'enum/mandate_type'
30
+ require_relative 'enum/mandate_execution_type'
31
+ require_relative 'enum/pay_out_payment_type'
32
+ require_relative 'enum/kyc_doc_refused_reason_type'
33
+ require_relative 'enum/kyc_document_type'
34
+ require_relative 'enum/document_status'
35
+ require_relative 'enum/natural_user_capacity'
36
+ require_relative 'enum/ubo_declaration_status'
37
+ require_relative 'enum/ubo_declaration_refused_reason_type'
38
+ require_relative 'enum/declared_ubo_status'
39
+ require_relative 'enum/declared_ubo_refused_reason_type'
40
+ require_relative 'enum/hook_validity'
41
+ require_relative 'enum/event_type'
42
+ require_relative 'enum/refund_reason_type'
43
+ require_relative 'enum/dispute_type'
44
+ require_relative 'enum/dispute_reason_type'
45
+ require_relative 'enum/dispute_status'
46
+ require_relative 'enum/dispute_doc_refused_reason_type'
47
+ require_relative 'enum/download_format'
48
+ require_relative 'enum/report_type'
49
+ require_relative 'enum/report_status'
50
+ require_relative 'enum/business_type'
51
+ require_relative 'enum/sector'
52
+ require_relative 'enum/avs_result'
53
+ require_relative 'entity/user/user'
54
+ require_relative 'entity/user/natural_user'
55
+ require_relative 'entity/user/legal_user'
56
+ require_relative 'entity/card'
57
+ require_relative 'entity/client'
58
+ require_relative 'entity/transaction'
59
+ require_relative 'entity/transfer'
60
+ require_relative 'entity/pre_authorization'
61
+ require_relative 'entity/repudiation'
62
+ require_relative 'entity/settlement_transfer'
63
+ require_relative 'event'
64
+ require_relative 'address'
65
+ require_relative 'money'
66
+ require_relative 'entity/wallet'
67
+ require_relative 'e_money'
68
+ require_relative 'refund_reason'
69
+ require_relative 'document_page_consult'
70
+ require_relative 'dispute_reason'
71
+ require_relative 'platform_categorization'
72
+ require_relative 'billing'
73
+ require_relative 'security_info'
74
+
75
+ # Module for model classes.
76
+ module MangoModel
77
+
78
+ # Maps each type to its existing declared field names.
79
+ @fields_by_type = {
80
+ DateTime => %w[date],
81
+ PersonType => %w[person_type],
82
+ KycLevel => %w[kyc_level],
83
+ LegalPersonType => %w[legal_person_type],
84
+ CountryIso => %w[country
85
+ nationality
86
+ country_of_residence
87
+ legal_representative_nationality
88
+ legal_representative_country_of_residence],
89
+ Address => %w[address
90
+ headquarters_address
91
+ legal_representative_address
92
+ owner_address],
93
+ DepositType => %w[deposit_account_type],
94
+ Money => %w[balance
95
+ credited_e_money
96
+ debited_e_money
97
+ debited_funds
98
+ credited_funds
99
+ fees
100
+ declared_debited_funds
101
+ declared_fees
102
+ disputed_funds
103
+ contested_funds],
104
+ CurrencyIso => %w[currency],
105
+ FundsType => %w[funds_type],
106
+ PlatformType => %w[platform_type],
107
+ TransactionNature => %w[nature],
108
+ TransactionStatus => %w[status],
109
+ TransactionType => %w[type initial_transaction_type],
110
+ PayInPaymentType => %w[payment_type],
111
+ PayInExecutionType => %w[execution_type],
112
+ CardType => %w[card_type],
113
+ SecureMode => %w[secure_mode],
114
+ CultureCode => %w[culture],
115
+ CardValidity => %w[validity],
116
+ PaymentStatus => %w[payment_status],
117
+ DirectDebitType => %w[direct_debit_type],
118
+ MandateScheme => %w[scheme],
119
+ MandateType => %w[mandate_type],
120
+ KycDocRefusedReasonType => %w[refused_reason_type],
121
+ NaturalUserCapacity => %w[capacity],
122
+ EventType => %w[event_type],
123
+ RefundReason => %w[refund_reason],
124
+ RefundReasonType => %w[refund_reason_type],
125
+ DisputeType => %w[dispute_type],
126
+ DisputeReason => %w[dispute_reason],
127
+ DisputeReasonType => %w[dispute_reason_type],
128
+ DownloadFormat => %w[download_format],
129
+ ReportType => %w[report_type],
130
+ Sector => %w[sector],
131
+ BusinessType => %w[business_type],
132
+ PlatformCategorization => %w[platform_categorization],
133
+ Billing => %w[billing],
134
+ SecurityInfo => %w[security_info],
135
+ AvsResult => %w[avs_result]
136
+ }
137
+
138
+ class << self
139
+
140
+ # Returns an array containing all declared
141
+ # field names of a certain type
142
+ #
143
+ # noinspection RubyResolve
144
+ def fields_of_type(type)
145
+ @fields_by_type[type]
146
+ end
147
+
148
+ # Asserts the type of pay-in represented by a hash
149
+ #
150
+ # @param +hash+ [Hash] source hash
151
+ # @return [Class] type of pay-in represented by the hash
152
+ def pay_in_type(hash)
153
+ if hash['PaymentType'] == PayInPaymentType::CARD.to_s\
154
+ && hash['ExecutionType'] == PayInExecutionType::WEB.to_s
155
+ CardWebPayIn
156
+ elsif hash['PaymentType'] == PayInPaymentType::CARD.to_s\
157
+ && hash['ExecutionType'] == PayInExecutionType::DIRECT.to_s
158
+ CardDirectPayIn
159
+ elsif hash['PaymentType'] == PayInPaymentType::PREAUTHORIZED.to_s\
160
+ && hash['ExecutionType'] == PayInExecutionType::DIRECT.to_s
161
+ CardPreAuthorizedPayIn
162
+ elsif hash['PaymentType'] == PayInPaymentType::BANK_WIRE.to_s\
163
+ && hash['ExecutionType'] == PayInExecutionType::DIRECT.to_s
164
+ BankWireDirectPayIn
165
+ elsif hash['PaymentType'] == PayInPaymentType::BANK_WIRE.to_s\
166
+ && hash['ExecutionType'] == PayInExecutionType::EXTERNAL_INSTRUCTION.to_s
167
+ BankWireExternalInstructionPayIn
168
+ elsif hash['PaymentType'] == PayInPaymentType::DIRECT_DEBIT.to_s\
169
+ && hash['ExecutionType'] == PayInExecutionType::WEB.to_s
170
+ DirectDebitWebPayIn
171
+ elsif hash['PaymentType'] == PayInPaymentType::DIRECT_DEBIT.to_s\
172
+ && hash['ExecutionType'] == PayInExecutionType::DIRECT.to_s
173
+ DirectDebitDirectPayIn
174
+ elsif hash['PaymentType'] == PayInPaymentType::PAYPAL.to_s\
175
+ && hash['ExecutionType'] == PayInExecutionType::WEB.to_s
176
+ PaypalWebPayIn
177
+ elsif hash['PaymentType'] == PayInPaymentType::APPLEPAY.to_s\
178
+ && hash['ExecutionType'] == PayInExecutionType::DIRECT.to_s
179
+ ApplePayPayIn
180
+ end
181
+ end
182
+
183
+ # Asserts the type of bank account represented by a hash.
184
+ #
185
+ # @param +hash+ [Hash] source hash
186
+ # @return [Class] type of bank account represented by the hash
187
+ def bank_account_type(hash)
188
+ case hash['Type']
189
+ when AccountType::IBAN.to_s
190
+ IbanBankAccount
191
+ when AccountType::US.to_s
192
+ UsBankAccount
193
+ when AccountType::CA.to_s
194
+ CaBankAccount
195
+ when AccountType::GB.to_s
196
+ GbBankAccount
197
+ else
198
+ OtherBankAccount
199
+ end
200
+ end
201
+
202
+ # Asserts the type of user represented by a hash.
203
+ #
204
+ # @param +hash+ [Hash] source hash
205
+ # @return [Class] type of user represented by the hash
206
+ def user_type(hash)
207
+ case hash['PersonType']
208
+ when PersonType::NATURAL.to_s
209
+ NaturalUser
210
+ else
211
+ LegalUser
212
+ end
213
+ end
214
+ end
194
215
  end