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,151 +1,151 @@
1
- require_relative '../uri_provider'
2
- require_relative '../../model/report_filter'
3
-
4
- module MangoApi
5
-
6
- # Provides API method delegates concerning the +Report+ entity
7
- module Reports
8
- class << self
9
- include UriProvider
10
-
11
- # Requests creation of a transaction report.
12
- # Yields a +ReportFilter+ object for caller to specify
13
- # filtering parameters in a provided block.
14
- #
15
- # +Report+ properties:
16
- # * Optional
17
- # * tag
18
- # * callback_url
19
- # * download_format
20
- # * sort
21
- # * preview
22
- # * columns
23
- #
24
- # Available +columns+ values: Alias, AuthorId,
25
- # BankAccountId, BankWireRef, CardId, CardType, Country,
26
- # CreationDate, CreditedFundsAmount, CreditedFundsCurrency,
27
- # CreditedUserId, CreditedWalletId, Culture, DebitedFundsAmount,
28
- # DebitedFundsCurrency, DebitedWalletId, DeclaredDebitedFundsAmount,
29
- # DeclaredDebitedFundsCurrency, DeclaredFeesAmount, DeclaredFeesCurrency,
30
- # ExecutionDate, ExecutionType, ExpirationDate, FeesAmount, FeesCurrency,
31
- # Id, Nature, PaymentType, PreauthorizationId, ResultCode, ResultMessage,
32
- # Status, Tag, Type, WireReference
33
- #
34
- # Allowed +ReportFilter+ params:
35
- # * after_date
36
- # * before_date
37
- # * type
38
- # * status
39
- # * nature
40
- # * min_debited_funds_amount
41
- # * min_debited_funds_currency
42
- # * max_debited_funds_amount
43
- # * max_debited_funds_currency
44
- # * min_fees_amount
45
- # * min_fees_currency
46
- # * max_fees_amount
47
- # * max_fees_currency
48
- # * author_id
49
- # * wallet_id
50
- #
51
- # @param +report+ [Report] model object of the report to be created
52
- # @return [Report] the newly-created Report entity object
53
- def create_for_transactions(report)
54
- uri = provide_uri(:create_transaction_report)
55
- report.filters = ReportFilter.new unless report.filters
56
- yield report.filters if block_given?
57
- response = HttpClient.post(uri, report)
58
- parse response
59
- end
60
-
61
- # Requests creation of a wallet report.
62
- # Yields a +ReportFilter+ object for caller to specify
63
- # filtering parameters in a provided block.
64
- #
65
- # +Report+ properties:
66
- # * Optional
67
- # * tag
68
- # * callback_url
69
- # * download_format
70
- # * sort
71
- # * preview
72
- # * columns
73
- #
74
- # Available +columns+ values: Id, Tag, CreationDate, Owners, Description,
75
- # BalanceAmount, BalanceCurrency, Currency, FundsType
76
- #
77
- # Allowed +FilterRequest+ params:
78
- # * after_date
79
- # * before_date
80
- # * owner_id
81
- # * currency
82
- # * min_balance_amount
83
- # * min_balance_currency
84
- # * max_balance_amount
85
- # * max_balance_currency
86
- #
87
- # @param +report+ [Report] model object of the report to be created
88
- # @return [Report] the newly-created Report entity object
89
- def create_for_wallets(report)
90
- uri = provide_uri(:create_wallet_report)
91
- report.filters = ReportFilter.new unless report.filters
92
- yield report.filters if block_given?
93
- response = HttpClient.post(uri, report)
94
- parse response
95
- end
96
-
97
- # Retrieves a report entity.
98
- #
99
- # @param +id+ [String] ID of the report to retrieve
100
- # @return [Report] the requested Report entity object
101
- def get(id)
102
- uri = provide_uri(:get_report, id)
103
- response = HttpClient.get(uri)
104
- parse response
105
- end
106
-
107
- # Retrieves report entities. Allows configuration of paging and
108
- # sorting parameters by yielding a filtering object to a provided
109
- # block. When no filters are specified, will retrieve the first
110
- # page of 10 newest results.
111
- #
112
- # Allowed +FilterRequest+ params:
113
- # * page
114
- # * per_page
115
- # * sort_field and sort_direction
116
- # * before_date
117
- # * after_date
118
- #
119
- # @return [Array] corresponding Report entity objects
120
- def all
121
- uri = provide_uri(:get_reports)
122
- filter_request = nil
123
- yield filter_request = FilterRequest.new if block_given?
124
- results = HttpClient.get(uri, filter_request)
125
- parse_results results
126
- end
127
-
128
- private
129
-
130
- # Parses an array of JSON-originating hashes into the corresponding
131
- # Report entity objects.
132
- #
133
- # @param +results+ [Array] JSON-originating data hashes
134
- # @return [Array] parsed Report entity objects
135
- def parse_results(results)
136
- results.collect do |entity|
137
- parse entity
138
- end
139
- end
140
-
141
- # Parses a JSON-originating hash into the corresponding
142
- # Report entity object.
143
- #
144
- # @param +response+ [Hash] JSON-originating data hash
145
- # @return [Report] corresponding Report entity object
146
- def parse(response)
147
- MangoModel::Report.new.dejsonify response
148
- end
149
- end
150
- end
1
+ require_relative '../uri_provider'
2
+ require_relative '../../model/report_filter'
3
+
4
+ module MangoApi
5
+
6
+ # Provides API method delegates concerning the +Report+ entity
7
+ module Reports
8
+ class << self
9
+ include UriProvider
10
+
11
+ # Requests creation of a transaction report.
12
+ # Yields a +ReportFilter+ object for caller to specify
13
+ # filtering parameters in a provided block.
14
+ #
15
+ # +Report+ properties:
16
+ # * Optional
17
+ # * tag
18
+ # * callback_url
19
+ # * download_format
20
+ # * sort
21
+ # * preview
22
+ # * columns
23
+ #
24
+ # Available +columns+ values: Alias, AuthorId,
25
+ # BankAccountId, BankWireRef, CardId, CardType, Country,
26
+ # CreationDate, CreditedFundsAmount, CreditedFundsCurrency,
27
+ # CreditedUserId, CreditedWalletId, Culture, DebitedFundsAmount,
28
+ # DebitedFundsCurrency, DebitedWalletId, DeclaredDebitedFundsAmount,
29
+ # DeclaredDebitedFundsCurrency, DeclaredFeesAmount, DeclaredFeesCurrency,
30
+ # ExecutionDate, ExecutionType, ExpirationDate, FeesAmount, FeesCurrency,
31
+ # Id, Nature, PaymentType, PreauthorizationId, ResultCode, ResultMessage,
32
+ # Status, Tag, Type, WireReference
33
+ #
34
+ # Allowed +ReportFilter+ params:
35
+ # * after_date
36
+ # * before_date
37
+ # * type
38
+ # * status
39
+ # * nature
40
+ # * min_debited_funds_amount
41
+ # * min_debited_funds_currency
42
+ # * max_debited_funds_amount
43
+ # * max_debited_funds_currency
44
+ # * min_fees_amount
45
+ # * min_fees_currency
46
+ # * max_fees_amount
47
+ # * max_fees_currency
48
+ # * author_id
49
+ # * wallet_id
50
+ #
51
+ # @param +report+ [Report] model object of the report to be created
52
+ # @return [Report] the newly-created Report entity object
53
+ def create_for_transactions(report)
54
+ uri = provide_uri(:create_transaction_report)
55
+ report.filters = ReportFilter.new unless report.filters
56
+ yield report.filters if block_given?
57
+ response = HttpClient.post(uri, report)
58
+ parse response
59
+ end
60
+
61
+ # Requests creation of a wallet report.
62
+ # Yields a +ReportFilter+ object for caller to specify
63
+ # filtering parameters in a provided block.
64
+ #
65
+ # +Report+ properties:
66
+ # * Optional
67
+ # * tag
68
+ # * callback_url
69
+ # * download_format
70
+ # * sort
71
+ # * preview
72
+ # * columns
73
+ #
74
+ # Available +columns+ values: Id, Tag, CreationDate, Owners, Description,
75
+ # BalanceAmount, BalanceCurrency, Currency, FundsType
76
+ #
77
+ # Allowed +FilterRequest+ params:
78
+ # * after_date
79
+ # * before_date
80
+ # * owner_id
81
+ # * currency
82
+ # * min_balance_amount
83
+ # * min_balance_currency
84
+ # * max_balance_amount
85
+ # * max_balance_currency
86
+ #
87
+ # @param +report+ [Report] model object of the report to be created
88
+ # @return [Report] the newly-created Report entity object
89
+ def create_for_wallets(report)
90
+ uri = provide_uri(:create_wallet_report)
91
+ report.filters = ReportFilter.new unless report.filters
92
+ yield report.filters if block_given?
93
+ response = HttpClient.post(uri, report)
94
+ parse response
95
+ end
96
+
97
+ # Retrieves a report entity.
98
+ #
99
+ # @param +id+ [String] ID of the report to retrieve
100
+ # @return [Report] the requested Report entity object
101
+ def get(id)
102
+ uri = provide_uri(:get_report, id)
103
+ response = HttpClient.get(uri)
104
+ parse response
105
+ end
106
+
107
+ # Retrieves report entities. Allows configuration of paging and
108
+ # sorting parameters by yielding a filtering object to a provided
109
+ # block. When no filters are specified, will retrieve the first
110
+ # page of 10 newest results.
111
+ #
112
+ # Allowed +FilterRequest+ params:
113
+ # * page
114
+ # * per_page
115
+ # * sort_field and sort_direction
116
+ # * before_date
117
+ # * after_date
118
+ #
119
+ # @return [Array] corresponding Report entity objects
120
+ def all
121
+ uri = provide_uri(:get_reports)
122
+ filter_request = nil
123
+ yield filter_request = FilterRequest.new if block_given?
124
+ results = HttpClient.get(uri, filter_request)
125
+ parse_results results
126
+ end
127
+
128
+ private
129
+
130
+ # Parses an array of JSON-originating hashes into the corresponding
131
+ # Report entity objects.
132
+ #
133
+ # @param +results+ [Array] JSON-originating data hashes
134
+ # @return [Array] parsed Report entity objects
135
+ def parse_results(results)
136
+ results.collect do |entity|
137
+ parse entity
138
+ end
139
+ end
140
+
141
+ # Parses a JSON-originating hash into the corresponding
142
+ # Report entity object.
143
+ #
144
+ # @param +response+ [Hash] JSON-originating data hash
145
+ # @return [Report] corresponding Report entity object
146
+ def parse(response)
147
+ MangoModel::Report.new.dejsonify response
148
+ end
149
+ end
150
+ end
151
151
  end
@@ -1,32 +1,32 @@
1
- require_relative '../uri_provider'
2
-
3
- module MangoApi
4
-
5
- # Provides API method delegates concerning the +Repudiation+ entity
6
- module Repudiations
7
- class << self
8
- include UriProvider
9
-
10
- # Retrieves a repudiation entity.
11
- #
12
- # @param +id+ [String] ID of the repudiation to retrieve
13
- # @return [Repudiation] the requested Repudiation entity object
14
- def get(id)
15
- uri = provide_uri(:get_repudiation, id)
16
- response = HttpClient.get(uri)
17
- parse response
18
- end
19
-
20
- private
21
-
22
- # Parses a JSON-originating hash into the corresponding
23
- # Repudiation entity object.
24
- #
25
- # @param +response+ [Hash] JSON-originating data hash
26
- # @return [Repudiation] corresponding Repudiation entity object
27
- def parse(response)
28
- MangoModel::Repudiation.new.dejsonify response
29
- end
30
- end
31
- end
1
+ require_relative '../uri_provider'
2
+
3
+ module MangoApi
4
+
5
+ # Provides API method delegates concerning the +Repudiation+ entity
6
+ module Repudiations
7
+ class << self
8
+ include UriProvider
9
+
10
+ # Retrieves a repudiation entity.
11
+ #
12
+ # @param +id+ [String] ID of the repudiation to retrieve
13
+ # @return [Repudiation] the requested Repudiation entity object
14
+ def get(id)
15
+ uri = provide_uri(:get_repudiation, id)
16
+ response = HttpClient.get(uri)
17
+ parse response
18
+ end
19
+
20
+ private
21
+
22
+ # Parses a JSON-originating hash into the corresponding
23
+ # Repudiation entity object.
24
+ #
25
+ # @param +response+ [Hash] JSON-originating data hash
26
+ # @return [Repudiation] corresponding Repudiation entity object
27
+ def parse(response)
28
+ MangoModel::Repudiation.new.dejsonify response
29
+ end
30
+ end
31
+ end
32
32
  end
@@ -1,102 +1,102 @@
1
- require_relative '../uri_provider'
2
- require_relative '../../model/response_replica'
3
-
4
- module MangoApi
5
-
6
- # Provides API method delegates for replicating
7
- # responses based on idempotency keys.
8
- module Responses
9
- class << self
10
- include UriProvider
11
-
12
- # Retrieves the response of a previous request by
13
- # the idempotency key which was provided at the time.
14
- #
15
- # @param +id_key+ Idempotency key provided with the original request
16
- # @return [ResponseReplica] Replica of the original response
17
- def replicate(id_key)
18
- uri = provide_uri(:replicate_response, id_key)
19
- response = HttpClient.get uri
20
- parse response
21
- end
22
-
23
- private
24
-
25
- # Parses the received response into a corresponding object
26
- #
27
- # @param +response+ [Hash] hashed response
28
- # @return [ResponseReplica] De-serialized typed response replication
29
- def parse(response)
30
- replica = MangoModel::ResponseReplica.new.dejsonify response
31
- type = entity_type(replica.resource, replica.request_url)
32
- replica.resource = type.new.dejsonify replica.resource if type
33
- replica
34
- end
35
-
36
- # Asserts the effective type of entity returned
37
- # in an API response, based on the request URL.
38
- #
39
- # @param +hash+ [Hash] hashed JSON response
40
- # @param +source_url+ [String] URL from where the entity was returned
41
- # @return [Class] actual type of the entity
42
- def entity_type(hash, source_url)
43
- case source_url
44
- when %r{/reports}
45
- MangoModel::Report
46
- when %r{(/settlementtransfer|/settlements)}
47
- MangoModel::SettlementTransfer
48
- when %r{/repudiations}
49
- MangoModel::Repudiation
50
- when %r{(/disputes.+/documents|dispute-documents)}
51
- MangoModel::DisputeDocument
52
- when %r{/disputes}
53
- MangoModel::Dispute
54
- when %r{(/kyc/documents.+/consult|/dispute-documents.+/consult)}
55
- MangoModel::DocumentPageConsult
56
- when %r{/refunds}
57
- MangoModel::Refund
58
- when %r{/events}
59
- MangoModel::Event
60
- when %r{/hooks}
61
- MangoModel::Hook
62
- when %r{/ubodeclarations}
63
- MangoModel::UboDeclaration
64
- when %r{/kyc/documents}
65
- MangoModel::KycDocument
66
- when %r{/payouts/}
67
- MangoModel::PayOut
68
- when %r{/extended/}
69
- MangoModel::PayInWebExtendedView
70
- when %r{/mandates}
71
- MangoModel:: Mandate
72
- when %r{/transactions}
73
- MangoModel::Transaction
74
- when %r{/preauthorizations}
75
- MangoModel::PreAuthorization
76
- when %r{/cards}
77
- MangoModel::Card
78
- when %r{/cardregistrations}
79
- MangoModel::CardRegistration
80
- when %r{/payins}
81
- MangoModel.pay_in_type(hash)
82
- when %r{/transfers}
83
- MangoModel::Transfer
84
- when %r{/emoney}
85
- MangoModel::EMoney
86
- when %r{/bankaccounts}
87
- MangoModel.bank_account_type(hash)
88
- when %r{/clients/wallets}
89
- MangoModel::ClientWallet
90
- when %r{/wallets}
91
- MangoModel::Wallet
92
- when %r{/users}
93
- MangoModel.user_type(hash)
94
- when %r{/clients}
95
- MangoModel::Client
96
- else
97
- raise 'Could not assert effective type for entity source: ' + source_url
98
- end
99
- end
100
- end
101
- end
1
+ require_relative '../uri_provider'
2
+ require_relative '../../model/response_replica'
3
+
4
+ module MangoApi
5
+
6
+ # Provides API method delegates for replicating
7
+ # responses based on idempotency keys.
8
+ module Responses
9
+ class << self
10
+ include UriProvider
11
+
12
+ # Retrieves the response of a previous request by
13
+ # the idempotency key which was provided at the time.
14
+ #
15
+ # @param +id_key+ Idempotency key provided with the original request
16
+ # @return [ResponseReplica] Replica of the original response
17
+ def replicate(id_key)
18
+ uri = provide_uri(:replicate_response, id_key)
19
+ response = HttpClient.get uri
20
+ parse response
21
+ end
22
+
23
+ private
24
+
25
+ # Parses the received response into a corresponding object
26
+ #
27
+ # @param +response+ [Hash] hashed response
28
+ # @return [ResponseReplica] De-serialized typed response replication
29
+ def parse(response)
30
+ replica = MangoModel::ResponseReplica.new.dejsonify response
31
+ type = entity_type(replica.resource, replica.request_url)
32
+ replica.resource = type.new.dejsonify replica.resource if type
33
+ replica
34
+ end
35
+
36
+ # Asserts the effective type of entity returned
37
+ # in an API response, based on the request URL.
38
+ #
39
+ # @param +hash+ [Hash] hashed JSON response
40
+ # @param +source_url+ [String] URL from where the entity was returned
41
+ # @return [Class] actual type of the entity
42
+ def entity_type(hash, source_url)
43
+ case source_url
44
+ when %r{/reports}
45
+ MangoModel::Report
46
+ when %r{(/settlementtransfer|/settlements)}
47
+ MangoModel::SettlementTransfer
48
+ when %r{/repudiations}
49
+ MangoModel::Repudiation
50
+ when %r{(/disputes.+/documents|dispute-documents)}
51
+ MangoModel::DisputeDocument
52
+ when %r{/disputes}
53
+ MangoModel::Dispute
54
+ when %r{(/kyc/documents.+/consult|/dispute-documents.+/consult)}
55
+ MangoModel::DocumentPageConsult
56
+ when %r{/refunds}
57
+ MangoModel::Refund
58
+ when %r{/events}
59
+ MangoModel::Event
60
+ when %r{/hooks}
61
+ MangoModel::Hook
62
+ when %r{/ubodeclarations}
63
+ MangoModel::UboDeclaration
64
+ when %r{/kyc/documents}
65
+ MangoModel::KycDocument
66
+ when %r{/payouts/}
67
+ MangoModel::PayOut
68
+ when %r{/extended/}
69
+ MangoModel::PayInWebExtendedView
70
+ when %r{/mandates}
71
+ MangoModel:: Mandate
72
+ when %r{/transactions}
73
+ MangoModel::Transaction
74
+ when %r{/preauthorizations}
75
+ MangoModel::PreAuthorization
76
+ when %r{/cards}
77
+ MangoModel::Card
78
+ when %r{/cardregistrations}
79
+ MangoModel::CardRegistration
80
+ when %r{/payins}
81
+ MangoModel.pay_in_type(hash)
82
+ when %r{/transfers}
83
+ MangoModel::Transfer
84
+ when %r{/emoney}
85
+ MangoModel::EMoney
86
+ when %r{/bankaccounts}
87
+ MangoModel.bank_account_type(hash)
88
+ when %r{/clients/wallets}
89
+ MangoModel::ClientWallet
90
+ when %r{/wallets}
91
+ MangoModel::Wallet
92
+ when %r{/users}
93
+ MangoModel.user_type(hash)
94
+ when %r{/clients}
95
+ MangoModel::Client
96
+ else
97
+ raise 'Could not assert effective type for entity source: ' + source_url
98
+ end
99
+ end
100
+ end
101
+ end
102
102
  end