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,55 +1,55 @@
1
- require_relative '../uri_provider'
2
-
3
- module MangoApi
4
-
5
- # Provides API method delegates concerning the +SettlementTransfer+ entity
6
- module SettlementTransfers
7
- class << self
8
- include UriProvider
9
-
10
- # Creates a new settlement transfer entity.
11
- #
12
- # +SettlementTransfer+ properties:
13
- # * Required
14
- # * author_id
15
- # * debited_funds
16
- # * fees
17
- # * Optional
18
- # * tag
19
- #
20
- # @param +repudiation_id+ [String] ID of the corresponding repudiation
21
- # @param +transfer+ [SettlementTransfer] model object of the settlement
22
- # transfer to be created
23
- # @return [SettlementTransfer] the newly-created SettlementTransfer
24
- # entity object
25
- def create(repudiation_id, transfer)
26
- uri = provide_uri(:create_settlement_transfer, repudiation_id)
27
- response = HttpClient.post(uri, transfer)
28
- parse response
29
- end
30
-
31
- # Retrieves a settlement transfer entity.
32
- #
33
- # @param +id+ [String] ID of the settlement transfer to retrieve
34
- # @return [SettlementTransfer] the requested SettlementTransfer
35
- # entity object
36
- def get(id)
37
- uri = provide_uri(:get_settlement_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
- # SettlementTransfer entity object.
46
- #
47
- # @param +response+ [Hash] JSON-originating data hash
48
- # @return [SettlementTransfer] corresponding SettlementTransfer
49
- # entity object
50
- def parse(response)
51
- MangoModel::SettlementTransfer.new.dejsonify response
52
- end
53
- end
54
- end
1
+ require_relative '../uri_provider'
2
+
3
+ module MangoApi
4
+
5
+ # Provides API method delegates concerning the +SettlementTransfer+ entity
6
+ module SettlementTransfers
7
+ class << self
8
+ include UriProvider
9
+
10
+ # Creates a new settlement transfer entity.
11
+ #
12
+ # +SettlementTransfer+ properties:
13
+ # * Required
14
+ # * author_id
15
+ # * debited_funds
16
+ # * fees
17
+ # * Optional
18
+ # * tag
19
+ #
20
+ # @param +repudiation_id+ [String] ID of the corresponding repudiation
21
+ # @param +transfer+ [SettlementTransfer] model object of the settlement
22
+ # transfer to be created
23
+ # @return [SettlementTransfer] the newly-created SettlementTransfer
24
+ # entity object
25
+ def create(repudiation_id, transfer)
26
+ uri = provide_uri(:create_settlement_transfer, repudiation_id)
27
+ response = HttpClient.post(uri, transfer)
28
+ parse response
29
+ end
30
+
31
+ # Retrieves a settlement transfer entity.
32
+ #
33
+ # @param +id+ [String] ID of the settlement transfer to retrieve
34
+ # @return [SettlementTransfer] the requested SettlementTransfer
35
+ # entity object
36
+ def get(id)
37
+ uri = provide_uri(:get_settlement_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
+ # SettlementTransfer entity object.
46
+ #
47
+ # @param +response+ [Hash] JSON-originating data hash
48
+ # @return [SettlementTransfer] corresponding SettlementTransfer
49
+ # entity object
50
+ def parse(response)
51
+ MangoModel::SettlementTransfer.new.dejsonify response
52
+ end
53
+ end
54
+ end
55
55
  end
@@ -1,183 +1,247 @@
1
- require_relative '../uri_provider'
2
-
3
- module MangoApi
4
-
5
- # Provides API method delegates concerning the +Transaction+ entity
6
- module Transactions
7
- class << self
8
- include UriProvider
9
-
10
- # Retrieves pages of transaction entities belonging to a certain user.
11
- # Allows configuration of paging and sorting parameters by
12
- # yielding a filtering object to a provided block. When no filters
13
- # are specified, will retrieve the first page of 10 newest results.
14
- #
15
- # Allowed +FilterRequest+ params:
16
- # * page
17
- # * per_page
18
- # * sort_field and sort_direction
19
- # * before_date
20
- # * after_date
21
- # * status
22
- # * nature
23
- # * type
24
- #
25
- # @param +id+ [String] ID of the user whose transactions to retrieve
26
- # @return [Array] the requested Transaction entity objects
27
- def of_user(id)
28
- uri = provide_uri(:get_users_transactions, id)
29
- filter_request = nil
30
- yield filter_request = FilterRequest.new if block_given?
31
- results = HttpClient.get(uri, filter_request)
32
- parse_results results
33
- end
34
-
35
- # Retrieves pages of transaction entities belonging to a certain wallet.
36
- # Allows configuration of paging and sorting parameters by
37
- # yielding a filtering object to a provided block. When no filters
38
- # are specified, will retrieve the first page of 10 newest results.
39
- #
40
- # Allowed +FilterRequest+ params:
41
- # * page
42
- # * per_page
43
- # * sort_field and sort_direction
44
- # * before_date
45
- # * after_date
46
- # * status
47
- # * nature
48
- # * type
49
- #
50
- # @param +id+ [String] ID of the user whose transactions to retrieve
51
- # @return [Array] the requested Transaction entity objects
52
- def of_wallet(id)
53
- uri = provide_uri(:get_wallets_transactions, id)
54
- filter_request = nil
55
- yield filter_request = FilterRequest.new if block_given?
56
- results = HttpClient.get(uri, filter_request)
57
- parse_results results
58
- end
59
-
60
- # Retrieves pages of transaction entities belonging to a certain dispute.
61
- # Allows configuration of paging and sorting parameters by
62
- # yielding a filtering object to a provided block. When no filters
63
- # are specified, will retrieve the first page of 10 newest results.
64
- #
65
- # Allowed +FilterRequest+ params:
66
- # * page
67
- # * per_page
68
- # * sort_field and sort_direction
69
- # * before_date
70
- # * after_date
71
- # * status
72
- # * nature
73
- # * type
74
- #
75
- # @param +id+ [String] ID of the dispute whose transactions to retrieve
76
- # @return [Array] the requested Transaction entity objects
77
- def of_dispute(id)
78
- uri = provide_uri(:get_disputes_transactions, id)
79
- filter_request = nil
80
- yield filter_request = FilterRequest.new if block_given?
81
- results = HttpClient.get(uri, filter_request)
82
- parse_results results
83
- end
84
-
85
- # Retrieves pages of transaction entities belonging to
86
- # the current environment's client. Allows configuration of
87
- # paging and sorting parameters by yielding a filtering object
88
- # to a provided block. When no filters are specified, will
89
- # retrieve the first page of 10 newest results.
90
- #
91
- # Allowed +FilterRequest+ params:
92
- # * page
93
- # * per_page
94
- # * sort_field and sort_direction
95
- # * before_date
96
- # * after_date
97
- # * status
98
- # * nature
99
- # * type
100
- #
101
- # @return [Array] the requested Transaction entity objects
102
- def of_client
103
- uri = provide_uri(:get_clients_transactions)
104
- filter_request = nil
105
- yield filter_request = FilterRequest.new if block_given?
106
- results = HttpClient.get(uri, filter_request)
107
- parse_results results
108
- end
109
-
110
- # Retrieves pages of transaction entities belonging to
111
- # the current environment's client wallet specified by
112
- # +funds_type+ and +currency+. Allows configuration of
113
- # paging and sorting parameters by yielding a filtering object
114
- # to a provided block. When no filters are specified, will
115
- # retrieve the first page of 10 newest results.
116
- #
117
- # Allowed +FilterRequest+ params:
118
- # * page
119
- # * per_page
120
- # * sort_field and sort_direction
121
- # * before_date
122
- # * after_date
123
- # * status
124
- # * nature
125
- # * type
126
- #
127
- # @param +funds_type+ [FundsType] the funds' type of the wallet to
128
- # retrieve Transactions for
129
- # @return [Array] the requested Transaction entity objects
130
- def of_client_wallet(funds_type, currency)
131
- uri = provide_uri(:get_client_wallets_transactions,
132
- funds_type,
133
- currency)
134
- filter_request = nil
135
- yield filter_request = FilterRequest.new if block_given?
136
- results = HttpClient.get(uri, filter_request)
137
- parse_results results
138
- end
139
-
140
- # Retrieves pages of transaction entities belonging to a certain
141
- # pre-authorization.Allows configuration of paging and sorting parameters
142
- # by yielding a filtering object to a provided block. When no filters
143
- # are specified, will retrieve the first page of 10 newest results.
144
- #
145
- # Allowed +FilterRequest+ params:
146
- # * page
147
- # * per_page
148
- # * sort_field and sort_direction
149
- #
150
- # @param +id+ [String] ID of the dispute whose transactions to retrieve
151
- # @return [Array] the requested Transaction entity objects
152
- def of_pre_authorization(id)
153
- uri = provide_uri(:get_pre_authorizations_transactions, id)
154
- filter_request = nil
155
- yield filter_request = FilterRequest.new if block_given?
156
- results = HttpClient.get(uri, filter_request)
157
- parse_results results
158
- end
159
-
160
- private
161
-
162
- # Parses an array of JSON-originating hashes into the corresponding
163
- # Transaction entity objects.
164
- #
165
- # @param +results+ [Array] JSON-originating data hashes
166
- # @return [Array] parsed Transaction entity objects
167
- def parse_results(results)
168
- results.collect do |entity|
169
- parse entity
170
- end
171
- end
172
-
173
- # Parses a JSON-originating hash into the corresponding
174
- # Transaction entity object.
175
- #
176
- # @param +response+ [Hash] JSON-originating data hash
177
- # @return [Transaction] corresponding Transaction entity object
178
- def parse(response)
179
- MangoModel::Transaction.new.dejsonify response
180
- end
181
- end
182
- end
1
+ require_relative '../uri_provider'
2
+
3
+ module MangoApi
4
+
5
+ # Provides API method delegates concerning the +Transaction+ entity
6
+ module Transactions
7
+ class << self
8
+ include UriProvider
9
+
10
+ # Retrieves pages of transaction entities belonging to a certain user.
11
+ # Allows configuration of paging and sorting parameters by
12
+ # yielding a filtering object to a provided block. When no filters
13
+ # are specified, will retrieve the first page of 10 newest results.
14
+ #
15
+ # Allowed +FilterRequest+ params:
16
+ # * page
17
+ # * per_page
18
+ # * sort_field and sort_direction
19
+ # * before_date
20
+ # * after_date
21
+ # * status
22
+ # * nature
23
+ # * type
24
+ #
25
+ # @param +id+ [String] ID of the user whose transactions to retrieve
26
+ # @return [Array] the requested Transaction entity objects
27
+ def of_user(id)
28
+ uri = provide_uri(:get_users_transactions, id)
29
+ filter_request = nil
30
+ yield filter_request = FilterRequest.new if block_given?
31
+ results = HttpClient.get(uri, filter_request)
32
+ parse_results results
33
+ end
34
+
35
+ # Retrieves pages of transaction entities belonging to a certain wallet.
36
+ # Allows configuration of paging and sorting parameters by
37
+ # yielding a filtering object to a provided block. When no filters
38
+ # are specified, will retrieve the first page of 10 newest results.
39
+ #
40
+ # Allowed +FilterRequest+ params:
41
+ # * page
42
+ # * per_page
43
+ # * sort_field and sort_direction
44
+ # * before_date
45
+ # * after_date
46
+ # * status
47
+ # * nature
48
+ # * type
49
+ #
50
+ # @param +id+ [String] ID of the user whose transactions to retrieve
51
+ # @return [Array] the requested Transaction entity objects
52
+ def of_wallet(id)
53
+ uri = provide_uri(:get_wallets_transactions, id)
54
+ filter_request = nil
55
+ yield filter_request = FilterRequest.new if block_given?
56
+ results = HttpClient.get(uri, filter_request)
57
+ parse_results results
58
+ end
59
+
60
+ # Retrieves pages of transaction entities belonging to a certain dispute.
61
+ # Allows configuration of paging and sorting parameters by
62
+ # yielding a filtering object to a provided block. When no filters
63
+ # are specified, will retrieve the first page of 10 newest results.
64
+ #
65
+ # Allowed +FilterRequest+ params:
66
+ # * page
67
+ # * per_page
68
+ # * sort_field and sort_direction
69
+ # * before_date
70
+ # * after_date
71
+ # * status
72
+ # * nature
73
+ # * type
74
+ #
75
+ # @param +id+ [String] ID of the dispute whose transactions to retrieve
76
+ # @return [Array] the requested Transaction entity objects
77
+ def of_dispute(id)
78
+ uri = provide_uri(:get_disputes_transactions, id)
79
+ filter_request = nil
80
+ yield filter_request = FilterRequest.new if block_given?
81
+ results = HttpClient.get(uri, filter_request)
82
+ parse_results results
83
+ end
84
+
85
+ # Retrieves pages of transaction entities belonging to
86
+ # the current environment's client. Allows configuration of
87
+ # paging and sorting parameters by yielding a filtering object
88
+ # to a provided block. When no filters are specified, will
89
+ # retrieve the first page of 10 newest results.
90
+ #
91
+ # Allowed +FilterRequest+ params:
92
+ # * page
93
+ # * per_page
94
+ # * sort_field and sort_direction
95
+ # * before_date
96
+ # * after_date
97
+ # * status
98
+ # * nature
99
+ # * type
100
+ #
101
+ # @return [Array] the requested Transaction entity objects
102
+ def of_client
103
+ uri = provide_uri(:get_clients_transactions)
104
+ filter_request = nil
105
+ yield filter_request = FilterRequest.new if block_given?
106
+ results = HttpClient.get(uri, filter_request)
107
+ parse_results results
108
+ end
109
+
110
+ # Retrieves pages of transaction entities belonging to
111
+ # the current environment's client wallet specified by
112
+ # +funds_type+ and +currency+. Allows configuration of
113
+ # paging and sorting parameters by yielding a filtering object
114
+ # to a provided block. When no filters are specified, will
115
+ # retrieve the first page of 10 newest results.
116
+ #
117
+ # Allowed +FilterRequest+ params:
118
+ # * page
119
+ # * per_page
120
+ # * sort_field and sort_direction
121
+ # * before_date
122
+ # * after_date
123
+ # * status
124
+ # * nature
125
+ # * type
126
+ #
127
+ # @param +funds_type+ [FundsType] the funds' type of the wallet to
128
+ # retrieve Transactions for
129
+ # @return [Array] the requested Transaction entity objects
130
+ def of_client_wallet(funds_type, currency)
131
+ uri = provide_uri(:get_client_wallets_transactions,
132
+ funds_type,
133
+ currency)
134
+ filter_request = nil
135
+ yield filter_request = FilterRequest.new if block_given?
136
+ results = HttpClient.get(uri, filter_request)
137
+ parse_results results
138
+ end
139
+
140
+ # Retrieves pages of transaction entities belonging to a certain
141
+ # pre-authorization. Allows configuration of paging and sorting parameters
142
+ # by yielding a filtering object to a provided block. When no filters
143
+ # are specified, will retrieve the first page of 10 newest results.
144
+ #
145
+ # Allowed +FilterRequest+ params:
146
+ # * page
147
+ # * per_page
148
+ # * sort_field and sort_direction
149
+ #
150
+ # @param +id+ [String] ID of the dispute whose transactions to retrieve
151
+ # @return [Array] the requested Transaction entity objects
152
+ def of_pre_authorization(id)
153
+ uri = provide_uri(:get_pre_authorizations_transactions, id)
154
+ filter_request = nil
155
+ yield filter_request = FilterRequest.new if block_given?
156
+ results = HttpClient.get(uri, filter_request)
157
+ parse_results results
158
+ end
159
+
160
+ # Retrieves pages of card entities belonging to a certain card.
161
+ # Allows configuration of paging and sorting parameters by yielding
162
+ # a filtering object to a provided block. When no filters are specified,
163
+ # will retrieve the first page of 10 newest results.
164
+ #
165
+ # Allowed +FilterRequest+ params:
166
+ # * page
167
+ # * per_page
168
+ # * sort_field and sort_direction
169
+ # * status
170
+ # * result_code
171
+ #
172
+ # @param +id+ [String] ID of the card whose transactions to retrieve
173
+ # @return [Array] the requested Transaction entity objects
174
+ def of_card(id)
175
+ uri = provide_uri(:get_cards_transactions, id)
176
+ filter_request = nil
177
+ yield filter_request = FilterRequest.new if block_given?
178
+ results = HttpClient.get(uri, filter_request)
179
+ parse_results results
180
+ end
181
+
182
+ # Retrieves pages of transaction entities belonging to a certain
183
+ # bank account. Allows configuration of paging and sorting parameters
184
+ # by yielding a filtering object to a provided block. When no filters
185
+ # are specified, will retrieve the first page of 10 newest results.
186
+ #
187
+ # Allowed +FilterRequest+ params:
188
+ # * page
189
+ # * per_page
190
+ # * sort_field and sort_direction
191
+ # * status
192
+ # * result_code
193
+ #
194
+ # @param +id+ [String] ID of the bank account whose transactions to retrieve
195
+ # @return [Array] the requested Transaction entity objects
196
+ def of_bank_account(id)
197
+ uri = provide_uri(:get_bank_accounts_transactions, id)
198
+ filter_request = nil
199
+ yield filter_request = FilterRequest.new if block_given?
200
+ results = HttpClient.get(uri, filter_request)
201
+ parse_results results
202
+ end
203
+
204
+ # Retrieves pages of transaction entities belonging to a certain
205
+ # mandate. Allows configuration of paging and sorting parameters
206
+ # by yielding a filtering object to a provided block. When no filters
207
+ # are specified, will retrieve the first page of 10 newest results.
208
+ #
209
+ # Allowed +FilterRequest+ params:
210
+ # * page
211
+ # * per_page
212
+ # * sort_field and sort_direction
213
+ #
214
+ # @param +id+ [String] ID of the mandate whose transactions to retrieve
215
+ # @return [Array] the requested Transaction entity objects
216
+ def of_mandate(id)
217
+ uri = provide_uri(:get_mandates_transactions, id)
218
+ filter_request = nil
219
+ yield filter_request = FilterRequest.new if block_given?
220
+ results = HttpClient.get(uri, filter_request)
221
+ parse_results results
222
+ end
223
+
224
+ private
225
+
226
+ # Parses an array of JSON-originating hashes into the corresponding
227
+ # Transaction entity objects.
228
+ #
229
+ # @param +results+ [Array] JSON-originating data hashes
230
+ # @return [Array] parsed Transaction entity objects
231
+ def parse_results(results)
232
+ results.collect do |entity|
233
+ parse entity
234
+ end
235
+ end
236
+
237
+ # Parses a JSON-originating hash into the corresponding
238
+ # Transaction entity object.
239
+ #
240
+ # @param +response+ [Hash] JSON-originating data hash
241
+ # @return [Transaction] corresponding Transaction entity object
242
+ def parse(response)
243
+ MangoModel::Transaction.new.dejsonify response
244
+ end
245
+ end
246
+ end
183
247
  end