mangopay-v4 4.0.0 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
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,34 +1,34 @@
1
- require_relative '../util/custom_logger'
2
- require_relative '../util/void_logger'
3
- require_relative '../util/custom_formatter'
4
-
5
- module MangoPay
6
-
7
- # Provides logger objects.
8
- class LogProvider
9
-
10
- ENABLE_LOGGING = true
11
- ENABLE_HTTP_LOGGING = true
12
-
13
- class << self
14
-
15
- def provide(context)
16
- if needs_http_logger(context) && ENABLE_HTTP_LOGGING\
17
- || !(needs_http_logger(context) && ENABLE_LOGGING)
18
- logger = CustomLogger.new(STDOUT)
19
- logger.progname = context.name
20
- logger.formatter = CustomFormatter.new
21
- logger
22
- else
23
- VoidLogger.new
24
- end
25
- end
26
-
27
- private
28
-
29
- def needs_http_logger(context)
30
- context.name =~ /HttpClient/ || context.name =~ /Jsonifier/
31
- end
32
- end
33
- end
1
+ require_relative '../util/custom_logger'
2
+ require_relative '../util/void_logger'
3
+ require_relative '../util/custom_formatter'
4
+
5
+ module MangoPay
6
+
7
+ # Provides logger objects.
8
+ class LogProvider
9
+
10
+ ENABLE_LOGGING = false
11
+ ENABLE_HTTP_LOGGING = false
12
+
13
+ class << self
14
+
15
+ def provide(context)
16
+ if needs_http_logger(context) && ENABLE_HTTP_LOGGING\
17
+ || (!needs_http_logger(context) && ENABLE_LOGGING)
18
+ logger = CustomLogger.new(STDOUT)
19
+ logger.progname = context.name
20
+ logger.formatter = CustomFormatter.new
21
+ logger
22
+ else
23
+ VoidLogger.new
24
+ end
25
+ end
26
+
27
+ private
28
+
29
+ def needs_http_logger(context)
30
+ context.name =~ /HttpClient/ || context.name =~ /Jsonifier/
31
+ end
32
+ end
33
+ end
34
34
  end
@@ -1,17 +1,17 @@
1
- require_relative '../util/enum'
2
-
3
- module MangoPay
4
-
5
- # MangoPay API rate limit reset times enumeration
6
- class RateLimitInterval
7
- extend Enum
8
-
9
- FIFTEEN_MIN = value 'FIFTEEN_MINUTES'
10
-
11
- THIRTY_MIN = value 'THIRTY_MINUTE'
12
-
13
- HOUR = value 'HOUR'
14
-
15
- DAY = value 'DAY'
16
- end
1
+ require_relative '../util/enum'
2
+
3
+ module MangoPay
4
+
5
+ # MangoPay API rate limit reset times enumeration
6
+ class RateLimitInterval
7
+ extend Enum
8
+
9
+ FIFTEEN_MIN = value 'FIFTEEN_MINUTES'
10
+
11
+ THIRTY_MIN = value 'THIRTY_MINUTE'
12
+
13
+ HOUR = value 'HOUR'
14
+
15
+ DAY = value 'DAY'
16
+ end
17
17
  end
@@ -1,27 +1,27 @@
1
- module MangoPay
2
-
3
- # Assures that no fields which are considered read-only
4
- # remain in a hash meant to be sent as a request body.
5
- module ReadOnlyFields
6
-
7
- @read_only_fields = %w[
8
- CreationDate
9
- ]
10
-
11
- class << self
12
-
13
- # Checks whether any of the fields marked as read-only
14
- # are present in the given hash. Removes those which are.
15
- #
16
- # @param +hash+ [Hash] hash to check for read-only fields
17
- # @return [Hash] the given hash minus any read-only fields
18
- #
19
- # noinspection RubyResolve
20
- def remove_from!(hash)
21
- @read_only_fields.each do |field|
22
- hash.delete field
23
- end
24
- end
25
- end
26
- end
1
+ module MangoPay
2
+
3
+ # Assures that no fields which are considered read-only
4
+ # remain in a hash meant to be sent as a request body.
5
+ module ReadOnlyFields
6
+
7
+ @read_only_fields = %w[
8
+ CreationDate, PaymentData
9
+ ]
10
+
11
+ class << self
12
+
13
+ # Checks whether any of the fields marked as read-only
14
+ # are present in the given hash. Removes those which are.
15
+ #
16
+ # @param +hash+ [Hash] hash to check for read-only fields
17
+ # @return [Hash] the given hash minus any read-only fields
18
+ #
19
+ # noinspection RubyResolve
20
+ def remove_from!(hash)
21
+ @read_only_fields.each do |field|
22
+ hash.delete field
23
+ end
24
+ end
25
+ end
26
+ end
27
27
  end
@@ -1,61 +1,61 @@
1
- module MangoPay
2
-
3
- # See http://docs.mangopay.com/api-references/response-codes-rules/
4
- # and http://docs.mangopay.com/api-references/error-codes/
5
- #
6
- # Thrown from any MangoPay API call whenever
7
- # it returns response with HTTP code != 200.
8
- # Check @details hash for further info.
9
- #
10
- # Two example exceptions with details:
11
- #
12
- # * <MangoPay::ResponseError:
13
- # One or several required parameters are missing or incorrect. [...]
14
- # Email: The Email field is required.>
15
- # {"Message"=>"One or several required parameters are missing or incorrect.
16
- # An incorrect resource ID also raises this kind of error.",
17
- # "Type"=>"param_error",
18
- # "Id"=>"66936e92-3f21-4a35-b6cf-f1d17c2fb6e5",
19
- # "Date"=>1409047252.0,
20
- # "errors"=>{"Email"=>"The Email field is required."},
21
- # "Code"=>"400",
22
- # "Url"=>"/v2/sdk-unit-tests/users/natural"}
23
- #
24
- # * <MangoPay::ResponseError: Internal Server Error>
25
- # {"Message"=>"Internal Server Error",
26
- # "Type"=>"other",
27
- # "Id"=>"7bdc5c6f-2000-4cd3-96f3-2a3fcb746f07",
28
- # "Date"=>1409047251.0,
29
- # "errors"=>nil,
30
- # "Code"=>"500",
31
- # "Url"=>"/v2/sdk-unit-tests/payins/3380640/refunds"}
32
- class ResponseError < StandardError
33
-
34
- attr_reader :request_url, :code, :details
35
-
36
- def initialize(request_url, code, details)
37
- @request_url = request_url
38
- @code = code
39
- @details = details
40
- super(message) if message
41
- end
42
-
43
- def type
44
- @details['Type'] if @details
45
- end
46
-
47
- def errors
48
- @details['errors'] if @details
49
- end
50
-
51
- def message
52
- return @message if @message
53
- msg = @details ? @details['Message'] : ''
54
- if errors && errors.is_a?(Hash)
55
- msg += errors.sort.map { |k, v| "\n#{k}: #{v}" }.join
56
- end
57
- @message = msg || "#{@code} #{@details['error']}"
58
- end
59
-
60
- end
61
- end
1
+ module MangoPay
2
+
3
+ # See http://docs.mangopay.com/api-references/response-codes-rules/
4
+ # and http://docs.mangopay.com/api-references/error-codes/
5
+ #
6
+ # Thrown from any MangoPay API call whenever
7
+ # it returns response with HTTP code != 200.
8
+ # Check @details hash for further info.
9
+ #
10
+ # Two example exceptions with details:
11
+ #
12
+ # * <MangoPay::ResponseError:
13
+ # One or several required parameters are missing or incorrect. [...]
14
+ # Email: The Email field is required.>
15
+ # {"Message"=>"One or several required parameters are missing or incorrect.
16
+ # An incorrect resource ID also raises this kind of error.",
17
+ # "Type"=>"param_error",
18
+ # "Id"=>"66936e92-3f21-4a35-b6cf-f1d17c2fb6e5",
19
+ # "Date"=>1409047252.0,
20
+ # "errors"=>{"Email"=>"The Email field is required."},
21
+ # "Code"=>"400",
22
+ # "Url"=>"/v2/sdk-unit-tests/users/natural"}
23
+ #
24
+ # * <MangoPay::ResponseError: Internal Server Error>
25
+ # {"Message"=>"Internal Server Error",
26
+ # "Type"=>"other",
27
+ # "Id"=>"7bdc5c6f-2000-4cd3-96f3-2a3fcb746f07",
28
+ # "Date"=>1409047251.0,
29
+ # "errors"=>nil,
30
+ # "Code"=>"500",
31
+ # "Url"=>"/v2/sdk-unit-tests/payins/3380640/refunds"}
32
+ class ResponseError < StandardError
33
+
34
+ attr_reader :request_url, :code, :details
35
+
36
+ def initialize(request_url, code, details)
37
+ @request_url = request_url
38
+ @code = code
39
+ @details = details
40
+ super(message) if message
41
+ end
42
+
43
+ def type
44
+ @details['Type'] if @details
45
+ end
46
+
47
+ def errors
48
+ @details['errors'] if @details
49
+ end
50
+
51
+ def message
52
+ return @message if @message
53
+ msg = @details ? @details['Message'] : ''
54
+ if errors && errors.is_a?(Hash)
55
+ msg += errors.sort.map { |k, v| "\n#{k}: #{v}" }.join
56
+ end
57
+ @message = msg || "#{@code} #{@details['error']}"
58
+ end
59
+
60
+ end
61
+ end
@@ -1,15 +1,15 @@
1
- require_relative '../../../lib/mangopay/util/enum'
2
-
3
- module MangoPay
4
-
5
- # Enumeration of sorting directions available for sorting API response results
6
- class SortDirection
7
- extend Enum
8
-
9
- # Ascending sort direction
10
- ASC = value 'ASC'
11
-
12
- # Descending sort direction
13
- DESC = value 'DESC'
14
- end
1
+ require_relative '../../../lib/mangopay/util/enum'
2
+
3
+ module MangoPay
4
+
5
+ # Enumeration of sorting directions available for sorting API response results
6
+ class SortDirection
7
+ extend Enum
8
+
9
+ # Ascending sort direction
10
+ ASC = value 'ASC'
11
+
12
+ # Descending sort direction
13
+ DESC = value 'DESC'
14
+ end
15
15
  end
@@ -1,13 +1,13 @@
1
- require_relative '../../../lib/mangopay/util/enum'
2
-
3
- module MangoPay
4
-
5
- # Available fields by which to sort API response results
6
- class SortField
7
- extend Enum
8
-
9
- CREATION_DATE = value 'CreationDate'
10
-
11
- DATE = value 'Date'
12
- end
1
+ require_relative '../../../lib/mangopay/util/enum'
2
+
3
+ module MangoPay
4
+
5
+ # Available fields by which to sort API response results
6
+ class SortField
7
+ extend Enum
8
+
9
+ CREATION_DATE = value 'CreationDate'
10
+
11
+ DATE = value 'Date'
12
+ end
13
13
  end
@@ -1,9 +1,9 @@
1
- require_relative 'jsonifier'
2
-
3
-
4
- class TemplateUrlOptions
5
- include MangoPay::Jsonifier
6
-
7
- # [String] URL to a SSL page
8
- attr_accessor :payline
1
+ require_relative 'jsonifier'
2
+
3
+
4
+ class TemplateUrlOptions
5
+ include MangoPay::Jsonifier
6
+
7
+ # [String] URL to a SSL page
8
+ attr_accessor :payline
9
9
  end
@@ -1,39 +1,39 @@
1
- module MangoPay
2
-
3
- # Top-level configuration details
4
- class Configuration
5
-
6
- # [true/false] True if the sandbox environment should be used
7
- attr_accessor :preproduction
8
-
9
- # [String] Root URL to use for requests
10
- attr_accessor :root_url
11
-
12
- # [String] Your client ID
13
- attr_accessor :client_id
14
-
15
- # [String] Your client passphrase
16
- attr_accessor :client_passphrase
17
-
18
- # [String] Path to directory in which to store authorization token
19
- # If nil, tokens will be stored in-memory.
20
- attr_accessor :temp_dir
21
-
22
- # [String] Path for logging file
23
- attr_accessor :log_dir
24
-
25
- # [Integer] Number of milliseconds after which to timeout requests
26
- attr_accessor :http_timeout
27
-
28
- def initialize
29
- self.preproduction = true
30
- self.http_timeout = 10_000
31
- end
32
-
33
- def api_version
34
- 'v2.01'
35
- end
36
-
37
- alias preproduction? preproduction
38
- end
1
+ module MangoPay
2
+
3
+ # Top-level configuration details
4
+ class Configuration
5
+
6
+ # [true/false] True if the sandbox environment should be used
7
+ attr_accessor :preproduction
8
+
9
+ # [String] Root URL to use for requests
10
+ attr_accessor :root_url
11
+
12
+ # [String] Your client ID
13
+ attr_accessor :client_id
14
+
15
+ # [String] Your client apiKey
16
+ attr_accessor :client_apiKey
17
+
18
+ # [String] Path to directory in which to store authorization token
19
+ # If nil, tokens will be stored in-memory.
20
+ attr_accessor :temp_dir
21
+
22
+ # [String] Path for logging file
23
+ attr_accessor :log_dir
24
+
25
+ # [Integer] Number of milliseconds after which to timeout requests
26
+ attr_accessor :http_timeout
27
+
28
+ def initialize
29
+ self.preproduction = true
30
+ self.http_timeout = 10_000
31
+ end
32
+
33
+ def api_version
34
+ 'v2.01'
35
+ end
36
+
37
+ alias preproduction? preproduction
38
+ end
39
39
  end
@@ -1,66 +1,66 @@
1
- require_relative 'common/log_provider'
2
- require_relative 'common/rate_limit_interval'
3
-
4
- module MangoPay
5
-
6
- # Holds environment-specific configuration and data.
7
- # Allows for multiple client handling and configuration
8
- # from within the same application.
9
- class Environment
10
- LOG = LogProvider.provide(self)
11
-
12
- # [Symbol] Its identification symbol
13
- attr_reader :id
14
-
15
- # [Configuration] Its MangoPay configuration details
16
- attr_accessor :configuration
17
-
18
- # [Hash] Counts of the requests sent to the API per time interval
19
- attr_accessor :rate_limit_count
20
-
21
- # [Hash] Number of remaining possible calls to be made per time interval
22
- attr_accessor :rate_limit_remaining
23
-
24
- # [Hash] UNIX times at which counts will be reset per time interval
25
- attr_accessor :rate_limit_reset
26
-
27
- def initialize(id)
28
- @id = id
29
- @rate_limit_count = {}
30
- @rate_limit_remaining = {}
31
- @rate_limit_reset = {}
32
- end
33
-
34
- # Updates the rate limit data based on headers from API.
35
- #
36
- # noinspection RubyResolve
37
- def update_rate_limits(rate_limits)
38
- rate_limits['x-ratelimit'].each.with_index do |count, index|
39
- @rate_limit_count[time_interval(index)] = count
40
- end
41
- rate_limits['x-ratelimit-remaining'].each.with_index do |remain, index|
42
- @rate_limit_remaining[time_interval(index)] = remain
43
- end
44
- rate_limits['x-ratelimit-reset'].each.with_index do |reset, index|
45
- @rate_limit_reset[time_interval(index)] = reset
46
- end
47
- end
48
-
49
- # Asserts the time interval corresponding to each index
50
- # of the values returned in API headers.
51
- def time_interval(index)
52
- case index
53
- when 0
54
- RateLimitInterval::FIFTEEN_MIN
55
- when 1
56
- RateLimitInterval::THIRTY_MIN
57
- when 2
58
- RateLimitInterval::HOUR
59
- when 3
60
- RateLimitInterval::DAY
61
- else
62
- LOG.warn 'Unexpected rate limit time interval count'
63
- end
64
- end
65
- end
1
+ require_relative 'common/log_provider'
2
+ require_relative 'common/rate_limit_interval'
3
+
4
+ module MangoPay
5
+
6
+ # Holds environment-specific configuration and data.
7
+ # Allows for multiple client handling and configuration
8
+ # from within the same application.
9
+ class Environment
10
+ LOG = LogProvider.provide(self)
11
+
12
+ # [Symbol] Its identification symbol
13
+ attr_reader :id
14
+
15
+ # [Configuration] Its MangoPay configuration details
16
+ attr_accessor :configuration
17
+
18
+ # [Hash] Counts of the requests sent to the API per time interval
19
+ attr_accessor :rate_limit_count
20
+
21
+ # [Hash] Number of remaining possible calls to be made per time interval
22
+ attr_accessor :rate_limit_remaining
23
+
24
+ # [Hash] UNIX times at which counts will be reset per time interval
25
+ attr_accessor :rate_limit_reset
26
+
27
+ def initialize(id)
28
+ @id = id
29
+ @rate_limit_count = {}
30
+ @rate_limit_remaining = {}
31
+ @rate_limit_reset = {}
32
+ end
33
+
34
+ # Updates the rate limit data based on headers from API.
35
+ #
36
+ # noinspection RubyResolve
37
+ def update_rate_limits(rate_limits)
38
+ rate_limits['x-ratelimit'].each.with_index do |count, index|
39
+ @rate_limit_count[time_interval(index)] = count
40
+ end
41
+ rate_limits['x-ratelimit-remaining'].each.with_index do |remain, index|
42
+ @rate_limit_remaining[time_interval(index)] = remain
43
+ end
44
+ rate_limits['x-ratelimit-reset'].each.with_index do |reset, index|
45
+ @rate_limit_reset[time_interval(index)] = reset
46
+ end
47
+ end
48
+
49
+ # Asserts the time interval corresponding to each index
50
+ # of the values returned in API headers.
51
+ def time_interval(index)
52
+ case index
53
+ when 0
54
+ RateLimitInterval::FIFTEEN_MIN
55
+ when 1
56
+ RateLimitInterval::THIRTY_MIN
57
+ when 2
58
+ RateLimitInterval::HOUR
59
+ when 3
60
+ RateLimitInterval::DAY
61
+ else
62
+ LOG.warn 'Unexpected rate limit time interval count'
63
+ end
64
+ end
65
+ end
66
66
  end