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 +PayOut+ entity
6
- module PayOuts
7
- class << self
8
- include UriProvider
9
-
10
- # Creates a new pay-out entity.
11
- #
12
- # +PayOut+ properties:
13
- # * Required
14
- # * author_id
15
- # * debited_funds
16
- # * fees
17
- # * bank_account_id
18
- # * debited_wallet_id
19
- # * Optional
20
- # * tag
21
- # * bank_wire_ref
22
- #
23
- # @param +pay_out+ [PayOut] model object of the pay-out to be created
24
- # @param +id_key+ [String] idempotency key for future response replication
25
- # @return [PayOut] the newly-created PayOut entity object
26
- def create(pay_out, id_key = nil)
27
- uri = provide_uri(:create_pay_out)
28
- response = HttpClient.post(uri, pay_out, id_key)
29
- parse response
30
- end
31
-
32
- # Retrieves a pay-out entity.
33
- #
34
- # @param +id+ [String] ID of the pay-out to retrieve
35
- # @return [PayOut] the requested PayOut entity object
36
- def get(id)
37
- uri = provide_uri(:get_pay_out, 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
- # PayOut entity object.
46
- #
47
- # @param +response+ [Hash] JSON-originating data hash
48
- # @return [PayOut] corresponding PayOut entity object
49
- def parse(response)
50
- MangoModel::PayOut.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 +PayOut+ entity
6
+ module PayOuts
7
+ class << self
8
+ include UriProvider
9
+
10
+ # Creates a new pay-out entity.
11
+ #
12
+ # +PayOut+ properties:
13
+ # * Required
14
+ # * author_id
15
+ # * debited_funds
16
+ # * fees
17
+ # * bank_account_id
18
+ # * debited_wallet_id
19
+ # * Optional
20
+ # * tag
21
+ # * bank_wire_ref
22
+ #
23
+ # @param +pay_out+ [PayOut] model object of the pay-out to be created
24
+ # @param +id_key+ [String] idempotency key for future response replication
25
+ # @return [PayOut] the newly-created PayOut entity object
26
+ def create(pay_out, id_key = nil)
27
+ uri = provide_uri(:create_pay_out)
28
+ response = HttpClient.post(uri, pay_out, id_key)
29
+ parse response
30
+ end
31
+
32
+ # Retrieves a pay-out entity.
33
+ #
34
+ # @param +id+ [String] ID of the pay-out to retrieve
35
+ # @return [PayOut] the requested PayOut entity object
36
+ def get(id)
37
+ uri = provide_uri(:get_pay_out, 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
+ # PayOut entity object.
46
+ #
47
+ # @param +response+ [Hash] JSON-originating data hash
48
+ # @return [PayOut] corresponding PayOut entity object
49
+ def parse(response)
50
+ MangoModel::PayOut.new.dejsonify response
51
+ end
52
+ end
53
+ end
54
54
  end
@@ -1,69 +1,127 @@
1
- require_relative '../uri_provider'
2
- require_relative '../../model/request/cancel_request'
3
-
4
- module MangoApi
5
-
6
- # Provides API method delegates concerning the +PreAuthorization+ entity
7
- module PreAuthorizations
8
- class << self
9
- include UriProvider
10
-
11
- # Creates a new Pre-Authorization entity.
12
- #
13
- # +PreAuthorization+ properties:
14
- # * Required
15
- # * author_id
16
- # * debited_funds
17
- # * card_id
18
- # * secure_mode_return_url
19
- # * Optional
20
- # * tag
21
- # * secure_mode
22
- #
23
- # @param +pre_auth+ [PreAuthorization] the pre-authorization
24
- # data model object
25
- # @param +id_key+ [String] idempotency key for future response replication
26
- # @return [PreAuthorization] the newly-created PreAuthorization
27
- # entity object
28
- def create(pre_auth, id_key = nil)
29
- uri = provide_uri(:create_pre_authorization)
30
- response = HttpClient.post(uri, pre_auth, id_key)
31
- parse response
32
- end
33
-
34
- # Retrieves a Pre-Authorization entity.
35
- #
36
- # @param +id+ [String] ID of the pre-authorization to retrieve
37
- # @return [PreAuthorization] the requested Pre-Authorization
38
- # entity object
39
- def get(id)
40
- uri = provide_uri(:get_pre_authorization, id)
41
- response = HttpClient.get(uri)
42
- parse response
43
- end
44
-
45
- # Cancels a Pre-Authorization entity.
46
- #
47
- # @param +id+ [String] ID of the pre-authorization to cancel
48
- # @return [PreAuthorization] the requested Pre-Authorization
49
- # entity object
50
- def cancel(id)
51
- uri = provide_uri(:cancel_pre_authorization, id)
52
- cancel_request = CancelRequest.new
53
- response = HttpClient.put(uri, cancel_request)
54
- parse response
55
- end
56
-
57
- private
58
-
59
- # Parses a JSON-originating hash into the corresponding
60
- # PreAuthorization entity object.
61
- #
62
- # @param +response+ [Hash] JSON-originating data hash
63
- # @return [PreAuthorization] corresponding PreAuthorization entity object
64
- def parse(response)
65
- MangoModel::PreAuthorization.new.dejsonify response
66
- end
67
- end
68
- end
1
+ require_relative '../uri_provider'
2
+ require_relative '../../model/request/cancel_request'
3
+
4
+ module MangoApi
5
+
6
+ # Provides API method delegates concerning the +PreAuthorization+ entity
7
+ module PreAuthorizations
8
+ class << self
9
+ include UriProvider
10
+
11
+ # Creates a new Pre-Authorization entity.
12
+ #
13
+ # +PreAuthorization+ properties:
14
+ # * Required
15
+ # * author_id
16
+ # * debited_funds
17
+ # * card_id
18
+ # * secure_mode_return_url
19
+ # * Optional
20
+ # * tag
21
+ # * secure_mode
22
+ #
23
+ # @param +pre_auth+ [PreAuthorization] the pre-authorization
24
+ # data model object
25
+ # @param +id_key+ [String] idempotency key for future response replication
26
+ # @return [PreAuthorization] the newly-created PreAuthorization
27
+ # entity object
28
+ def create(pre_auth, id_key = nil)
29
+ uri = provide_uri(:create_pre_authorization)
30
+ response = HttpClient.post(uri, pre_auth, id_key)
31
+ parse response
32
+ end
33
+
34
+ # Retrieves a Pre-Authorization entity.
35
+ #
36
+ # @param +id+ [String] ID of the pre-authorization to retrieve
37
+ # @return [PreAuthorization] the requested Pre-Authorization
38
+ # entity object
39
+ def get(id)
40
+ uri = provide_uri(:get_pre_authorization, id)
41
+ response = HttpClient.get(uri)
42
+ parse response
43
+ end
44
+
45
+ # Retrieves pages of pre-authorization entities belonging to a certain
46
+ # user. Allows configuration of paging and sorting parameters
47
+ # by yielding a filtering object to a provided block. When no filters
48
+ # are specified, will retrieve the first page of 10 newest results.
49
+ #
50
+ # Allowed +FilterRequest+ params:
51
+ # * page
52
+ # * per_page
53
+ # * sort_field and sort_direction
54
+ # * status
55
+ # * result_code
56
+ # * payment_status
57
+ #
58
+ # @param +id+ [String] ID of the dispute whose transactions to retrieve
59
+ # @return [Array] the requested Transaction entity objects
60
+ def of_user(id)
61
+ uri = provide_uri(:get_users_pre_authorizations, id)
62
+ filter_request = nil
63
+ yield filter_request = FilterRequest.new if block_given?
64
+ results = HttpClient.get(uri, filter_request)
65
+ parse_results results
66
+ end
67
+
68
+ # Cancels a Pre-Authorization entity.
69
+ #
70
+ # @param +id+ [String] ID of the pre-authorization to cancel
71
+ # @return [PreAuthorization] the requested Pre-Authorization
72
+ # entity object
73
+ def cancel(id)
74
+ uri = provide_uri(:cancel_pre_authorization, id)
75
+ cancel_request = CancelRequest.new
76
+ response = HttpClient.put(uri, cancel_request)
77
+ parse response
78
+ end
79
+
80
+ # Retrieves pre-authorization entities belonging to a certain card.
81
+ # Allows configuration of paging and sorting parameters by
82
+ # yielding a filtering object to a provided block. When no
83
+ # filters are specified, will retrieve the first page of
84
+ # 10 newest results.
85
+ #
86
+ # Allowed +FilterRequest+ params:
87
+ # * page
88
+ # * per_page
89
+ # * sort_field and sort_direction
90
+ # * result_code
91
+ # * status
92
+ # * payment_status
93
+ #
94
+ # @param +id+ [String] ID of the card whose pre-authorizations to retrieve
95
+ # @return [Array] corresponding PreAuthorization entity objects
96
+ def of_card(id)
97
+ uri = provide_uri(:get_preauthorizations_for_card, id)
98
+ filter_request = nil
99
+ yield filter_request = FilterRequest.new if block_given?
100
+ results = HttpClient.get(uri, filter_request)
101
+ parse_results results
102
+ end
103
+
104
+ private
105
+
106
+ # Parses a JSON-originating hash into the corresponding
107
+ # PreAuthorization entity object.
108
+ #
109
+ # @param +response+ [Hash] JSON-originating data hash
110
+ # @return [PreAuthorization] corresponding PreAuthorization entity object
111
+ def parse(response)
112
+ MangoModel::PreAuthorization.new.dejsonify response
113
+ end
114
+
115
+ # Parses an array of JSON-originating hashes into the corresponding
116
+ # PreAuthorization entity objects.
117
+ #
118
+ # @param +results+ [Array] JSON-originating data hashes
119
+ # @return [Array] parsed PreAuthorization entity objects
120
+ def parse_results(results)
121
+ results.collect do |entity|
122
+ parse entity
123
+ end
124
+ end
125
+ end
126
+ end
69
127
  end
@@ -1,62 +1,160 @@
1
- require_relative '../uri_provider'
2
-
3
- module MangoApi
4
-
5
- # Provides API method delegates concerning the +Refund+ entity
6
- module Refunds
7
- class << self
8
- include UriProvider
9
-
10
- # Creates a Pay-In Refund, which is a request to reimburse a user
11
- # on their payment card. The money which was paid will automatically
12
- # go back to the user's bank account.
13
- #
14
- # +Refund+ properties:
15
- # * Required
16
- # * author_id
17
- # * Optional
18
- # * tag
19
- # * debited_funds
20
- # * fees
21
- #
22
- # @param +id+ [String] ID of the pay-in being refunded
23
- # @param +refund+ [Refund] model object of the refund being created
24
- # @param +id_key+ [String] idempotency key for future response replication
25
- # @return [Refund] the newly-created Refund entity object
26
- def create_for_pay_in(id, refund, id_key = nil)
27
- uri = provide_uri(:create_pay_in_refund, id)
28
- response = HttpClient.post(uri, refund, id_key)
29
- parse response
30
- end
31
-
32
- # Creates a Transfer Refund.
33
- #
34
- # +Refund+ properties:
35
- # * Required
36
- # * author_id
37
- # * Optional
38
- # * tag
39
- #
40
- # @param +id+ [String] ID of the transfer being refunded
41
- # @param +refund+ [Refund] model object of the refund being created
42
- # @param +id_key+ [String] idempotency key for future response replication
43
- # @return [Refund] the newly-created Refund entity object
44
- def create_for_transfer(id, refund, id_key = nil)
45
- uri = provide_uri(:create_transfer_refund, id)
46
- response = HttpClient.post(uri, refund, id_key)
47
- parse response
48
- end
49
-
50
- private
51
-
52
- # Parses a JSON-originating hash into the corresponding
53
- # Refund entity object.
54
- #
55
- # @param +response+ [Hash] JSON-originating data hash
56
- # @return [Refund] corresponding Refund entity object
57
- def parse(response)
58
- MangoModel::Refund.new.dejsonify response
59
- end
60
- end
61
- end
1
+ require_relative '../uri_provider'
2
+
3
+ module MangoApi
4
+
5
+ # Provides API method delegates concerning the +Refund+ entity
6
+ module Refunds
7
+ class << self
8
+ include UriProvider
9
+
10
+ # Creates a Pay-In Refund, which is a request to reimburse a user
11
+ # on their payment card. The money which was paid will automatically
12
+ # go back to the user's bank account.
13
+ #
14
+ # +Refund+ properties:
15
+ # * Required
16
+ # * author_id
17
+ # * Optional
18
+ # * tag
19
+ # * debited_funds
20
+ # * fees
21
+ #
22
+ # @param +id+ [String] ID of the pay-in being refunded
23
+ # @param +refund+ [Refund] model object of the refund being created
24
+ # @param +id_key+ [String] idempotency key for future response replication
25
+ # @return [Refund] the newly-created Refund entity object
26
+ def create_for_pay_in(id, refund, id_key = nil)
27
+ uri = provide_uri(:create_pay_in_refund, id)
28
+ response = HttpClient.post(uri, refund, id_key)
29
+ parse response
30
+ end
31
+
32
+ # Creates a Transfer Refund.
33
+ #
34
+ # +Refund+ properties:
35
+ # * Required
36
+ # * author_id
37
+ # * Optional
38
+ # * tag
39
+ #
40
+ # @param +id+ [String] ID of the transfer being refunded
41
+ # @param +refund+ [Refund] model object of the refund being created
42
+ # @param +id_key+ [String] idempotency key for future response replication
43
+ # @return [Refund] the newly-created Refund entity object
44
+ def create_for_transfer(id, refund, id_key = nil)
45
+ uri = provide_uri(:create_transfer_refund, id)
46
+ response = HttpClient.post(uri, refund, id_key)
47
+ parse response
48
+ end
49
+
50
+ # Retrieves pages of refund entities belonging to a certain pay-out.
51
+ # Allows configuration of paging and sorting parameters by yielding
52
+ # a filtering object to a provided block. When no filters are specified,
53
+ # will retrieve the first page of 10 newest results.
54
+ #
55
+ # Allowed +FilterRequest+ params:
56
+ # * page
57
+ # * per_page
58
+ # * sort_field and sort_direction
59
+ # * status
60
+ # * result_code
61
+ #
62
+ # @param +id+ [String] ID of the pay-out whose refunds to retrieve
63
+ # @return [Array] the requested Refund entity objects
64
+ def of_pay_out(id)
65
+ uri = provide_uri(:get_payouts_refunds, id)
66
+ filter_request = nil
67
+ yield filter_request = FilterRequest.new if block_given?
68
+ results = HttpClient.get(uri, filter_request)
69
+ parse_results results
70
+ end
71
+
72
+ # Retrieves pages of refund entities belonging to a certain transfer.
73
+ # Allows configuration of paging and sorting parameters by yielding
74
+ # a filtering object to a provided block. When no filters are specified,
75
+ # will retrieve the first page of 10 newest results.
76
+ # Allowed +FilterRequest+ params:
77
+ # * page
78
+ # * per_page
79
+ # * sort_field and sort_direction
80
+ # * status
81
+ # * result_code
82
+ #
83
+ # @param +id+ [String] ID of the transfer whose refunds to retrieve
84
+ # @return [Array] the requested Refund entity objects
85
+ def of_transfer(id)
86
+ uri = provide_uri(:get_transfers_refunds, id)
87
+ filter_request = nil
88
+ yield filter_request = FilterRequest.new if block_given?
89
+ results = HttpClient.get(uri, filter_request)
90
+ parse_results results
91
+ end
92
+
93
+ # Retrieves pages of refund entities belonging to a certain pay-in.
94
+ # Allows configuration of paging and sorting parameters by yielding
95
+ # a filtering object to a provided block. When no filters are specified,
96
+ # will retrieve the first page of 10 newest results.
97
+ #
98
+ # Allowed +FilterRequest+ params:
99
+ # * page
100
+ # * per_page
101
+ # * sort_field and sort_direction
102
+ # * status
103
+ # * result_code
104
+ #
105
+ # @param +id+ [String] ID of the pay-in whose refunds to retrieve
106
+ # @return [Array] the requested Refund entity objects
107
+ def of_pay_in(id)
108
+ uri = provide_uri(:get_payins_refunds, id)
109
+ filter_request = nil
110
+ yield filter_request = FilterRequest.new if block_given?
111
+ results = HttpClient.get(uri, filter_request)
112
+ parse_results results
113
+ end
114
+
115
+ # Retrieves pages of refund entities belonging to a certain repudiation.
116
+ # Allows configuration of paging and sorting parameters by yielding
117
+ # a filtering object to a provided block. When no filters are specified,
118
+ # will retrieve the first page of 10 newest results.
119
+ #
120
+ # Allowed +FilterRequest+ params:
121
+ # * page
122
+ # * per_page
123
+ # * sort_field and sort_direction
124
+ # * status
125
+ # * result_code
126
+ #
127
+ # @param +id+ [String] ID of the repudiation whose refunds to retrieve
128
+ # @return [Array] the requested Refund entity objects
129
+ def of_repudiation(id)
130
+ uri = provide_uri(:get_repudiations_refunds, id)
131
+ filter_request = nil
132
+ yield filter_request = FilterRequest.new if block_given?
133
+ results = HttpClient.get(uri, filter_request)
134
+ parse_results results
135
+ end
136
+
137
+ private
138
+
139
+ # Parses a JSON-originating hash into the corresponding
140
+ # Refund entity object.
141
+ #
142
+ # @param +response+ [Hash] JSON-originating data hash
143
+ # @return [Refund] corresponding Refund entity object
144
+ def parse(response)
145
+ MangoModel::Refund.new.dejsonify response
146
+ end
147
+
148
+ # Parses an Array of JSON-originating hashes into
149
+ # corresponding Refund entity objects.
150
+ #
151
+ # @param +results+ [Array] JSON-originating data hashes
152
+ # @return [Array] corresponding Refund entity objects
153
+ def parse_results(results)
154
+ results.collect do |entity|
155
+ parse entity
156
+ end
157
+ end
158
+ end
159
+ end
62
160
  end