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,89 +1,89 @@
1
- require_relative '../uri_provider'
2
-
3
- module MangoApi
4
-
5
- # Provides API method delegates concerning the +ClientWallet+ entity
6
- module ClientWallets
7
- class << self
8
- include UriProvider
9
-
10
- # Retrieves a client wallet entity.
11
- # Client wallet entity of provided funds' type and currency will be
12
- # created if it does not yet exist.
13
- #
14
- # @param +funds_type+ [FundsType] funds' type of the wallet to retrieve
15
- # @param +currency+ [CurrencyIso] currency of the wallet to retrieve
16
- # @return [ClientWallet] the corresponding ClientWallet entity object
17
- def get(funds_type, currency)
18
- uri = provide_uri(:get_client_wallet, funds_type, currency)
19
- response = HttpClient.get(uri)
20
- parse response
21
- end
22
-
23
- # Retrieves client wallet entities. Allows configuration
24
- # of paging and sorting parameters by yielding a filtering
25
- # object to a provided block. When no filters are specified,
26
- # will retrieve the first page of 10 newest results.
27
- #
28
- # Allowed +FilterRequest+ params:
29
- # * page
30
- # * per_page
31
- # * sort_field and sort_direction
32
- #
33
- # @return [Array] array of hashed client wallet entities
34
- # corresponding to provided filters
35
- def all
36
- uri = provide_uri(:get_client_wallets)
37
- filter_request = nil
38
- yield filter_request = FilterRequest.new if block_given?
39
- results = HttpClient.get(uri, filter_request)
40
- parse_results results
41
- end
42
-
43
- # Retrieves client wallet entities of a certain funds type.
44
- # Allows configuration of paging and sorting parameters by
45
- # yielding a filtering object to a provided block. When no
46
- # filters are specified, will retrieve the first page of
47
- # 10 newest results.
48
- #
49
- # Allowed +FilterRequest+ params:
50
- # * page
51
- # * per_page
52
- # * sort_field and sort_direction
53
- #
54
- # @param +funds_type+ [FundsType] funds' type of the client
55
- # wallets to retrieve
56
- # @return [Array] array of hashed client wallet entities
57
- # corresponding to provided filters
58
- def of_funds_type(funds_type)
59
- uri = provide_uri(:get_client_wallets_funds_type, funds_type)
60
- filter_request = nil
61
- yield filter_request = FilterRequest.new if block_given?
62
- results = HttpClient.get(uri, filter_request)
63
- parse_results results
64
- end
65
-
66
- private
67
-
68
- # Parses an array of JSON-originating hashes into the corresponding
69
- # ClientWallet entity objects.
70
- #
71
- # @param +results+ [Array] JSON-originating data hashes
72
- # @return [Array] parsed ClientWallet entity objects
73
- def parse_results(results)
74
- results.collect do |entity|
75
- parse entity
76
- end
77
- end
78
-
79
- # Parses a JSON-originating hash into the corresponding
80
- # ClientWallet entity object.
81
- #
82
- # @param +response+ [Hash] JSON-originating data hash
83
- # @return [ClientWallet] corresponding ClientWallet entity object
84
- def parse(response)
85
- MangoModel::ClientWallet.new.dejsonify response
86
- end
87
- end
88
- end
1
+ require_relative '../uri_provider'
2
+
3
+ module MangoApi
4
+
5
+ # Provides API method delegates concerning the +ClientWallet+ entity
6
+ module ClientWallets
7
+ class << self
8
+ include UriProvider
9
+
10
+ # Retrieves a client wallet entity.
11
+ # Client wallet entity of provided funds' type and currency will be
12
+ # created if it does not yet exist.
13
+ #
14
+ # @param +funds_type+ [FundsType] funds' type of the wallet to retrieve
15
+ # @param +currency+ [CurrencyIso] currency of the wallet to retrieve
16
+ # @return [ClientWallet] the corresponding ClientWallet entity object
17
+ def get(funds_type, currency)
18
+ uri = provide_uri(:get_client_wallet, funds_type, currency)
19
+ response = HttpClient.get(uri)
20
+ parse response
21
+ end
22
+
23
+ # Retrieves client wallet entities. Allows configuration
24
+ # of paging and sorting parameters by yielding a filtering
25
+ # object to a provided block. When no filters are specified,
26
+ # will retrieve the first page of 10 newest results.
27
+ #
28
+ # Allowed +FilterRequest+ params:
29
+ # * page
30
+ # * per_page
31
+ # * sort_field and sort_direction
32
+ #
33
+ # @return [Array] array of hashed client wallet entities
34
+ # corresponding to provided filters
35
+ def all
36
+ uri = provide_uri(:get_client_wallets)
37
+ filter_request = nil
38
+ yield filter_request = FilterRequest.new if block_given?
39
+ results = HttpClient.get(uri, filter_request)
40
+ parse_results results
41
+ end
42
+
43
+ # Retrieves client wallet entities of a certain funds type.
44
+ # Allows configuration of paging and sorting parameters by
45
+ # yielding a filtering object to a provided block. When no
46
+ # filters are specified, will retrieve the first page of
47
+ # 10 newest results.
48
+ #
49
+ # Allowed +FilterRequest+ params:
50
+ # * page
51
+ # * per_page
52
+ # * sort_field and sort_direction
53
+ #
54
+ # @param +funds_type+ [FundsType] funds' type of the client
55
+ # wallets to retrieve
56
+ # @return [Array] array of hashed client wallet entities
57
+ # corresponding to provided filters
58
+ def of_funds_type(funds_type)
59
+ uri = provide_uri(:get_client_wallets_funds_type, funds_type)
60
+ filter_request = nil
61
+ yield filter_request = FilterRequest.new if block_given?
62
+ results = HttpClient.get(uri, filter_request)
63
+ parse_results results
64
+ end
65
+
66
+ private
67
+
68
+ # Parses an array of JSON-originating hashes into the corresponding
69
+ # ClientWallet entity objects.
70
+ #
71
+ # @param +results+ [Array] JSON-originating data hashes
72
+ # @return [Array] parsed ClientWallet entity objects
73
+ def parse_results(results)
74
+ results.collect do |entity|
75
+ parse entity
76
+ end
77
+ end
78
+
79
+ # Parses a JSON-originating hash into the corresponding
80
+ # ClientWallet entity object.
81
+ #
82
+ # @param +response+ [Hash] JSON-originating data hash
83
+ # @return [ClientWallet] corresponding ClientWallet entity object
84
+ def parse(response)
85
+ MangoModel::ClientWallet.new.dejsonify response
86
+ end
87
+ end
88
+ end
89
89
  end
@@ -1,68 +1,68 @@
1
- require_relative '../uri_provider'
2
- require_relative '../../util/file_encoder'
3
- require_relative '../../model/request/upload_file_request'
4
-
5
- module MangoApi
6
-
7
- # Provides API method delegates concerning the +Client+ entity
8
- module Clients
9
- class << self
10
- include UriProvider
11
-
12
- # Updates the current environment's client entity.
13
- #
14
- # +Client+ optional properties:
15
- # * primary_button_colour
16
- # * primary_theme_colour
17
- # * admin_emails
18
- # * tech_emails
19
- # * billing_emails
20
- # * fraud_emails
21
- # * headquarters_address
22
- # * tax_number
23
- # * platform_type
24
- # * platform_description
25
- # * platform_url
26
- #
27
- # @param +client+ [Client] client object with corresponding ID
28
- # and updated dat
29
- # @return [Client] updated Client entity object
30
- def update(client)
31
- uri = provide_uri(:update_client)
32
- response = HttpClient.put(uri, client)
33
- parse response
34
- end
35
-
36
- # Uploads the image file specified as the current
37
- # environment's client's logo.
38
- #
39
- # @param +path+ [String] path of the logo image
40
- def upload_logo(path)
41
- uri = provide_uri(:upload_client_logo)
42
- body = UploadFileRequest.new
43
- body.file = FileEncoder.encode_base64 path
44
- HttpClient.put(uri, body)
45
- end
46
-
47
- # Retrieves the current environment's client entity.
48
- #
49
- # @return [Client] current Client entity object
50
- def get
51
- uri = provide_uri(:get_client)
52
- response = HttpClient.get(uri)
53
- parse response
54
- end
55
-
56
- private
57
-
58
- # Parses a JSON-originating hash into the corresponding
59
- # Client entity object.
60
- #
61
- # @param +response+ [Hash] JSON-originating data hash
62
- # @return [Client] corresponding Client entity object
63
- def parse(response)
64
- MangoModel::Client.new.dejsonify response
65
- end
66
- end
67
- end
1
+ require_relative '../uri_provider'
2
+ require_relative '../../util/file_encoder'
3
+ require_relative '../../model/request/upload_file_request'
4
+
5
+ module MangoApi
6
+
7
+ # Provides API method delegates concerning the +Client+ entity
8
+ module Clients
9
+ class << self
10
+ include UriProvider
11
+
12
+ # Updates the current environment's client entity.
13
+ #
14
+ # +Client+ optional properties:
15
+ # * primary_button_colour
16
+ # * primary_theme_colour
17
+ # * admin_emails
18
+ # * tech_emails
19
+ # * billing_emails
20
+ # * fraud_emails
21
+ # * headquarters_address
22
+ # * tax_number
23
+ # * platform_type
24
+ # * platform_description
25
+ # * platform_url
26
+ #
27
+ # @param +client+ [Client] client object with corresponding ID
28
+ # and updated dat
29
+ # @return [Client] updated Client entity object
30
+ def update(client)
31
+ uri = provide_uri(:update_client)
32
+ response = HttpClient.put(uri, client)
33
+ parse response
34
+ end
35
+
36
+ # Uploads the image file specified as the current
37
+ # environment's client's logo.
38
+ #
39
+ # @param +path+ [String] path of the logo image
40
+ def upload_logo(path)
41
+ uri = provide_uri(:upload_client_logo)
42
+ body = UploadFileRequest.new
43
+ body.file = FileEncoder.encode_base64 path
44
+ HttpClient.put(uri, body)
45
+ end
46
+
47
+ # Retrieves the current environment's client entity.
48
+ #
49
+ # @return [Client] current Client entity object
50
+ def get
51
+ uri = provide_uri(:get_client)
52
+ response = HttpClient.get(uri)
53
+ parse response
54
+ end
55
+
56
+ private
57
+
58
+ # Parses a JSON-originating hash into the corresponding
59
+ # Client entity object.
60
+ #
61
+ # @param +response+ [Hash] JSON-originating data hash
62
+ # @return [Client] corresponding Client entity object
63
+ def parse(response)
64
+ MangoModel::Client.new.dejsonify response
65
+ end
66
+ end
67
+ end
68
68
  end
@@ -1,158 +1,158 @@
1
- require_relative '../uri_provider'
2
- require_relative '../../model/request/upload_file_request'
3
- require_relative '../../util/file_encoder'
4
- require_relative '../../model/request/submit_document_request'
5
-
6
- module MangoApi
7
-
8
- # Provides API method delegates for the +DisputeDocument+ entity
9
- module DisputeDocuments
10
- class << self
11
- include UriProvider
12
-
13
- # Creates a new dispute document entity.
14
- #
15
- # +DisputeDocument+ properties:
16
- # * Required
17
- # * type
18
- # * Optional
19
- # * tag
20
- #
21
- # @param +document+ [DisputeDocument] model object of the dispute
22
- # document to be created
23
- # @param +dispute_id+ [String] ID of the corresponding dispute
24
- # @return [DisputeDocument] the newly-created DisputeDocument entity object
25
- def create(document, dispute_id)
26
- uri = provide_uri(:create_dispute_document, dispute_id)
27
- response = HttpClient.post(uri, document)
28
- parse response
29
- end
30
-
31
- # Uploads a dispute document page. Allowed extensions:
32
- # .pdf .jpeg .jpg .gif .png
33
- #
34
- # @param +id+ [String] ID of the dispute document entity
35
- # that the page is being uploaded for
36
- # @param +dispute_id+ [String] ID of the corresponding dispute entity
37
- # @param +path+ [String] path to the file to upload
38
- def upload_page(id, dispute_id, path)
39
- uri = provide_uri(:upload_dispute_document_page, dispute_id, id)
40
- body = UploadFileRequest.new
41
- body.file = FileEncoder.encode_base64 path
42
- HttpClient.post(uri, body)
43
- end
44
-
45
- # Submits a dispute document entity for approval
46
- #
47
- # @param +id+ [String] ID of the dispute document to submit
48
- # @param +dispute_id+ [String] ID of the corresponding dispute
49
- # @return [DisputeDocument] the submitted DisputeDocument entity object
50
- def submit(id, dispute_id)
51
- uri = provide_uri(:submit_dispute_document, dispute_id, id)
52
- request = SubmitDocumentRequest.new
53
- response = HttpClient.put(uri, request)
54
- parse response
55
- end
56
-
57
- # Retrieves a dispute document entity.
58
- #
59
- # @param +id+ [String] ID of the dispute document to retrieve
60
- # @return [DisputeDocument] the requested DisputeDocument entity object
61
- def get(id)
62
- uri = provide_uri(:get_dispute_document, id)
63
- response = HttpClient.get(uri)
64
- parse response
65
- end
66
-
67
- # Retrieves dispute documents belonging to a certain dispute.
68
- # Allows configuration of paging and sorting parameters by
69
- # yielding a filtering object to a provided block. When no filters are
70
- # specified, will retrieve the first page of 10 newest results.
71
- #
72
- # Allowed +FilterRequest+ params:
73
- # * page
74
- # * per_page
75
- # * sort_field and sort_direction
76
- # * before_date
77
- # * after_date
78
- # * status
79
- # * type
80
- #
81
- # @param +id+ [String] ID of the dispute whose documents to retrieve
82
- # @return [Array] corresponding DisputeDocument entity objects
83
- def of_dispute(id)
84
- uri = provide_uri(:get_disputes_documents, id)
85
- filter_request = nil
86
- yield filter_request = FilterRequest.new if block_given?
87
- results = HttpClient.get(uri, filter_request)
88
- parse_results results
89
- end
90
-
91
- # Retrieves dispute documents belonging to the current environment's
92
- # client. Allows configuration of paging and sorting parameters by
93
- # yielding a filtering object to a provided block. When no filters are
94
- # specified, will retrieve the first page of 10 newest results.
95
- #
96
- # Allowed +FilterRequest+ params:
97
- # * page
98
- # * per_page
99
- # * sort_field and sort_direction
100
- # * before_date
101
- # * after_date
102
- # * status
103
- # * type
104
- #
105
- # @return [Array] corresponding DisputeDocument entity objects
106
- def all
107
- uri = provide_uri(:get_dispute_documents)
108
- filter_request = nil
109
- yield filter_request = FilterRequest.new if block_given?
110
- results = HttpClient.get(uri, filter_request)
111
- parse_results results
112
- end
113
-
114
- # Creates temporary URLs where each page of a dispute document
115
- # can be viewed
116
- #
117
- # @param +id+ [String] ID of the document whose pages to consult
118
- # @return [Array] the corresponding DocumentPageConsult objects
119
- def consult(id)
120
- uri = provide_uri(:consult_dispute_document, id)
121
- results = HttpClient.post(uri, nil)
122
- parse_consults results
123
- end
124
-
125
- private
126
-
127
- # Parses an array of JSON-originating hashes into the corresponding
128
- # DisputeDocument entity objects.
129
- #
130
- # @param +results+ [Array] JSON-originating data hashes
131
- # @return [Array] parsed DisputeDocument entity objects
132
- def parse_results(results)
133
- results.collect do |entity|
134
- parse entity
135
- end
136
- end
137
-
138
- # Parses a JSON-originating hash into the corresponding
139
- # DisputeDocument entity object.
140
- #
141
- # @param +response+ [Hash] JSON-originating data hash
142
- # @return [DisputeDocument] corresponding DisputeDocument entity object
143
- def parse(response)
144
- MangoModel::DisputeDocument.new.dejsonify response
145
- end
146
- # Parses an array of JSON-originating hashes into the corresponding
147
- # DocumentPageConsult objects.
148
- #
149
- # @param +consults+ [Array] JSON-originating data hashes
150
- # @return [Array] corresponding DocumentPageConsult objects
151
- def parse_consults(consults)
152
- consults.collect do |consult|
153
- MangoModel::DocumentPageConsult.new.dejsonify consult
154
- end
155
- end
156
- end
157
- end
1
+ require_relative '../uri_provider'
2
+ require_relative '../../model/request/upload_file_request'
3
+ require_relative '../../util/file_encoder'
4
+ require_relative '../../model/request/submit_document_request'
5
+
6
+ module MangoApi
7
+
8
+ # Provides API method delegates for the +DisputeDocument+ entity
9
+ module DisputeDocuments
10
+ class << self
11
+ include UriProvider
12
+
13
+ # Creates a new dispute document entity.
14
+ #
15
+ # +DisputeDocument+ properties:
16
+ # * Required
17
+ # * type
18
+ # * Optional
19
+ # * tag
20
+ #
21
+ # @param +document+ [DisputeDocument] model object of the dispute
22
+ # document to be created
23
+ # @param +dispute_id+ [String] ID of the corresponding dispute
24
+ # @return [DisputeDocument] the newly-created DisputeDocument entity object
25
+ def create(document, dispute_id)
26
+ uri = provide_uri(:create_dispute_document, dispute_id)
27
+ response = HttpClient.post(uri, document)
28
+ parse response
29
+ end
30
+
31
+ # Uploads a dispute document page. Allowed extensions:
32
+ # .pdf .jpeg .jpg .gif .png
33
+ #
34
+ # @param +id+ [String] ID of the dispute document entity
35
+ # that the page is being uploaded for
36
+ # @param +dispute_id+ [String] ID of the corresponding dispute entity
37
+ # @param +path+ [String] path to the file to upload
38
+ def upload_page(id, dispute_id, path)
39
+ uri = provide_uri(:upload_dispute_document_page, dispute_id, id)
40
+ body = UploadFileRequest.new
41
+ body.file = FileEncoder.encode_base64 path
42
+ HttpClient.post(uri, body)
43
+ end
44
+
45
+ # Submits a dispute document entity for approval
46
+ #
47
+ # @param +id+ [String] ID of the dispute document to submit
48
+ # @param +dispute_id+ [String] ID of the corresponding dispute
49
+ # @return [DisputeDocument] the submitted DisputeDocument entity object
50
+ def submit(id, dispute_id)
51
+ uri = provide_uri(:submit_dispute_document, dispute_id, id)
52
+ request = SubmitDocumentRequest.new
53
+ response = HttpClient.put(uri, request)
54
+ parse response
55
+ end
56
+
57
+ # Retrieves a dispute document entity.
58
+ #
59
+ # @param +id+ [String] ID of the dispute document to retrieve
60
+ # @return [DisputeDocument] the requested DisputeDocument entity object
61
+ def get(id)
62
+ uri = provide_uri(:get_dispute_document, id)
63
+ response = HttpClient.get(uri)
64
+ parse response
65
+ end
66
+
67
+ # Retrieves dispute documents belonging to a certain dispute.
68
+ # Allows configuration of paging and sorting parameters by
69
+ # yielding a filtering object to a provided block. When no filters are
70
+ # specified, will retrieve the first page of 10 newest results.
71
+ #
72
+ # Allowed +FilterRequest+ params:
73
+ # * page
74
+ # * per_page
75
+ # * sort_field and sort_direction
76
+ # * before_date
77
+ # * after_date
78
+ # * status
79
+ # * type
80
+ #
81
+ # @param +id+ [String] ID of the dispute whose documents to retrieve
82
+ # @return [Array] corresponding DisputeDocument entity objects
83
+ def of_dispute(id)
84
+ uri = provide_uri(:get_disputes_documents, id)
85
+ filter_request = nil
86
+ yield filter_request = FilterRequest.new if block_given?
87
+ results = HttpClient.get(uri, filter_request)
88
+ parse_results results
89
+ end
90
+
91
+ # Retrieves dispute documents belonging to the current environment's
92
+ # client. Allows configuration of paging and sorting parameters by
93
+ # yielding a filtering object to a provided block. When no filters are
94
+ # specified, will retrieve the first page of 10 newest results.
95
+ #
96
+ # Allowed +FilterRequest+ params:
97
+ # * page
98
+ # * per_page
99
+ # * sort_field and sort_direction
100
+ # * before_date
101
+ # * after_date
102
+ # * status
103
+ # * type
104
+ #
105
+ # @return [Array] corresponding DisputeDocument entity objects
106
+ def all
107
+ uri = provide_uri(:get_dispute_documents)
108
+ filter_request = nil
109
+ yield filter_request = FilterRequest.new if block_given?
110
+ results = HttpClient.get(uri, filter_request)
111
+ parse_results results
112
+ end
113
+
114
+ # Creates temporary URLs where each page of a dispute document
115
+ # can be viewed
116
+ #
117
+ # @param +id+ [String] ID of the document whose pages to consult
118
+ # @return [Array] the corresponding DocumentPageConsult objects
119
+ def consult(id)
120
+ uri = provide_uri(:consult_dispute_document, id)
121
+ results = HttpClient.post(uri, nil)
122
+ parse_consults results
123
+ end
124
+
125
+ private
126
+
127
+ # Parses an array of JSON-originating hashes into the corresponding
128
+ # DisputeDocument entity objects.
129
+ #
130
+ # @param +results+ [Array] JSON-originating data hashes
131
+ # @return [Array] parsed DisputeDocument entity objects
132
+ def parse_results(results)
133
+ results.collect do |entity|
134
+ parse entity
135
+ end
136
+ end
137
+
138
+ # Parses a JSON-originating hash into the corresponding
139
+ # DisputeDocument entity object.
140
+ #
141
+ # @param +response+ [Hash] JSON-originating data hash
142
+ # @return [DisputeDocument] corresponding DisputeDocument entity object
143
+ def parse(response)
144
+ MangoModel::DisputeDocument.new.dejsonify response
145
+ end
146
+ # Parses an array of JSON-originating hashes into the corresponding
147
+ # DocumentPageConsult objects.
148
+ #
149
+ # @param +consults+ [Array] JSON-originating data hashes
150
+ # @return [Array] corresponding DocumentPageConsult objects
151
+ def parse_consults(consults)
152
+ consults.collect do |consult|
153
+ MangoModel::DocumentPageConsult.new.dejsonify consult
154
+ end
155
+ end
156
+ end
157
+ end
158
158
  end