mangopay-v4 4.0.0

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 (214) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +30 -0
  3. data/.rspec +4 -0
  4. data/.rubocop.yml +2 -0
  5. data/.travis.yml +13 -0
  6. data/Gemfile +2 -0
  7. data/LICENSE +20 -0
  8. data/README.md +380 -0
  9. data/bin/mangopay +9 -0
  10. data/lib/mangopay.rb +133 -0
  11. data/lib/mangopay/api/api.rb +9 -0
  12. data/lib/mangopay/api/api_methods.rb +137 -0
  13. data/lib/mangopay/api/auth_token_manager.rb +173 -0
  14. data/lib/mangopay/api/http_client.rb +325 -0
  15. data/lib/mangopay/api/service/bank_accounts.rb +146 -0
  16. data/lib/mangopay/api/service/cards.rb +152 -0
  17. data/lib/mangopay/api/service/client_wallets.rb +89 -0
  18. data/lib/mangopay/api/service/clients.rb +68 -0
  19. data/lib/mangopay/api/service/dispute_documents.rb +158 -0
  20. data/lib/mangopay/api/service/disputes.rb +187 -0
  21. data/lib/mangopay/api/service/e_money.rb +42 -0
  22. data/lib/mangopay/api/service/events.rb +47 -0
  23. data/lib/mangopay/api/service/hooks.rb +93 -0
  24. data/lib/mangopay/api/service/kyc_documents.rb +153 -0
  25. data/lib/mangopay/api/service/mandates.rb +142 -0
  26. data/lib/mangopay/api/service/oauth_tokens.rb +25 -0
  27. data/lib/mangopay/api/service/pay_ins.rb +260 -0
  28. data/lib/mangopay/api/service/pay_outs.rb +54 -0
  29. data/lib/mangopay/api/service/pre_authorizations.rb +69 -0
  30. data/lib/mangopay/api/service/refunds.rb +62 -0
  31. data/lib/mangopay/api/service/reports.rb +151 -0
  32. data/lib/mangopay/api/service/repudiations.rb +32 -0
  33. data/lib/mangopay/api/service/responses.rb +102 -0
  34. data/lib/mangopay/api/service/settlement_transfers.rb +55 -0
  35. data/lib/mangopay/api/service/transactions.rb +183 -0
  36. data/lib/mangopay/api/service/transfers.rb +54 -0
  37. data/lib/mangopay/api/service/ubo_declarations.rb +70 -0
  38. data/lib/mangopay/api/service/users.rb +163 -0
  39. data/lib/mangopay/api/service/wallets.rb +99 -0
  40. data/lib/mangopay/api/uri_provider.rb +35 -0
  41. data/lib/mangopay/common/json_tag_converter.rb +68 -0
  42. data/lib/mangopay/common/jsonifier.rb +249 -0
  43. data/lib/mangopay/common/log_provider.rb +34 -0
  44. data/lib/mangopay/common/rate_limit_interval.rb +17 -0
  45. data/lib/mangopay/common/read_only_fields.rb +27 -0
  46. data/lib/mangopay/common/response_error.rb +61 -0
  47. data/lib/mangopay/common/sort_direction.rb +15 -0
  48. data/lib/mangopay/common/sort_field.rb +13 -0
  49. data/lib/mangopay/common/template_url_options.rb +9 -0
  50. data/lib/mangopay/configuration.rb +39 -0
  51. data/lib/mangopay/environment.rb +66 -0
  52. data/lib/mangopay/model/address.rb +27 -0
  53. data/lib/mangopay/model/declared_ubo.rb +21 -0
  54. data/lib/mangopay/model/dispute_reason.rb +15 -0
  55. data/lib/mangopay/model/document_page_consult.rb +15 -0
  56. data/lib/mangopay/model/e_money.rb +18 -0
  57. data/lib/mangopay/model/entity/account/bank_account.rb +26 -0
  58. data/lib/mangopay/model/entity/account/ca_bank_account.rb +27 -0
  59. data/lib/mangopay/model/entity/account/gb_bank_account.rb +21 -0
  60. data/lib/mangopay/model/entity/account/iban_bank_account.rb +21 -0
  61. data/lib/mangopay/model/entity/account/other_bank_account.rb +24 -0
  62. data/lib/mangopay/model/entity/account/us_bank_account.rb +24 -0
  63. data/lib/mangopay/model/entity/card.rb +45 -0
  64. data/lib/mangopay/model/entity/card_registration.rb +43 -0
  65. data/lib/mangopay/model/entity/client.rb +63 -0
  66. data/lib/mangopay/model/entity/client_wallet.rb +23 -0
  67. data/lib/mangopay/model/entity/dispute.rb +50 -0
  68. data/lib/mangopay/model/entity/dispute_document.rb +29 -0
  69. data/lib/mangopay/model/entity/entity_base.rb +18 -0
  70. data/lib/mangopay/model/entity/hook.rb +26 -0
  71. data/lib/mangopay/model/entity/kyc_document.rb +28 -0
  72. data/lib/mangopay/model/entity/mandate.rb +51 -0
  73. data/lib/mangopay/model/entity/pay_in/bank_wire_direct_pay_in.rb +22 -0
  74. data/lib/mangopay/model/entity/pay_in/card_direct_pay_in.rb +33 -0
  75. data/lib/mangopay/model/entity/pay_in/card_pre_authorized_pay_in.rb +13 -0
  76. data/lib/mangopay/model/entity/pay_in/card_web_pay_in.rb +40 -0
  77. data/lib/mangopay/model/entity/pay_in/direct_debit_direct_pay_in.rb +23 -0
  78. data/lib/mangopay/model/entity/pay_in/direct_debit_web_pay_in.rb +38 -0
  79. data/lib/mangopay/model/entity/pay_in/pay_in.rb +16 -0
  80. data/lib/mangopay/model/entity/pay_out.rb +22 -0
  81. data/lib/mangopay/model/entity/pre_authorization.rb +68 -0
  82. data/lib/mangopay/model/entity/refund.rb +18 -0
  83. data/lib/mangopay/model/entity/report.rb +51 -0
  84. data/lib/mangopay/model/entity/repudiation.rb +18 -0
  85. data/lib/mangopay/model/entity/settlement_transfer.rb +17 -0
  86. data/lib/mangopay/model/entity/transaction.rb +52 -0
  87. data/lib/mangopay/model/entity/transfer.rb +13 -0
  88. data/lib/mangopay/model/entity/ubo_declaration.rb +32 -0
  89. data/lib/mangopay/model/entity/user/legal_user.rb +53 -0
  90. data/lib/mangopay/model/entity/user/natural_user.rb +50 -0
  91. data/lib/mangopay/model/entity/user/user.rb +18 -0
  92. data/lib/mangopay/model/entity/wallet.rb +28 -0
  93. data/lib/mangopay/model/enum/account_type.rb +24 -0
  94. data/lib/mangopay/model/enum/card_status.rb +15 -0
  95. data/lib/mangopay/model/enum/card_type.rb +33 -0
  96. data/lib/mangopay/model/enum/card_validity.rb +19 -0
  97. data/lib/mangopay/model/enum/country_iso.rb +759 -0
  98. data/lib/mangopay/model/enum/culture_code.rb +44 -0
  99. data/lib/mangopay/model/enum/currency_iso.rb +552 -0
  100. data/lib/mangopay/model/enum/declared_ubo_refused_reason_type.rb +16 -0
  101. data/lib/mangopay/model/enum/declared_ubo_status.rb +18 -0
  102. data/lib/mangopay/model/enum/deposit_type.rb +15 -0
  103. data/lib/mangopay/model/enum/direct_debit_type.rb +13 -0
  104. data/lib/mangopay/model/enum/dispute_doc_refused_reason_type.rb +25 -0
  105. data/lib/mangopay/model/enum/dispute_document_type.rb +23 -0
  106. data/lib/mangopay/model/enum/dispute_reason_type.rb +33 -0
  107. data/lib/mangopay/model/enum/dispute_status.rb +21 -0
  108. data/lib/mangopay/model/enum/dispute_type.rb +15 -0
  109. data/lib/mangopay/model/enum/document_status.rb +21 -0
  110. data/lib/mangopay/model/enum/download_format.rb +11 -0
  111. data/lib/mangopay/model/enum/event_type.rb +74 -0
  112. data/lib/mangopay/model/enum/funds_type.rb +15 -0
  113. data/lib/mangopay/model/enum/hook_status.rb +13 -0
  114. data/lib/mangopay/model/enum/hook_validity.rb +15 -0
  115. data/lib/mangopay/model/enum/income_range.rb +21 -0
  116. data/lib/mangopay/model/enum/kyc_doc_refused_reason_type.rb +37 -0
  117. data/lib/mangopay/model/enum/kyc_document_type.rb +19 -0
  118. data/lib/mangopay/model/enum/kyc_level.rb +13 -0
  119. data/lib/mangopay/model/enum/legal_person_type.rb +15 -0
  120. data/lib/mangopay/model/enum/mandate_culture_code.rb +23 -0
  121. data/lib/mangopay/model/enum/mandate_execution_type.rb +11 -0
  122. data/lib/mangopay/model/enum/mandate_scheme.rb +13 -0
  123. data/lib/mangopay/model/enum/mandate_status.rb +24 -0
  124. data/lib/mangopay/model/enum/mandate_type.rb +11 -0
  125. data/lib/mangopay/model/enum/natural_user_capacity.rb +15 -0
  126. data/lib/mangopay/model/enum/pay_in_execution_type.rb +18 -0
  127. data/lib/mangopay/model/enum/pay_in_payment_type.rb +21 -0
  128. data/lib/mangopay/model/enum/pay_out_payment_type.rb +11 -0
  129. data/lib/mangopay/model/enum/payment_status.rb +21 -0
  130. data/lib/mangopay/model/enum/person_type.rb +15 -0
  131. data/lib/mangopay/model/enum/platform_type.rb +23 -0
  132. data/lib/mangopay/model/enum/pre_authorization_execution_type.rb +11 -0
  133. data/lib/mangopay/model/enum/pre_authorization_status.rb +18 -0
  134. data/lib/mangopay/model/enum/refund_reason_type.rb +21 -0
  135. data/lib/mangopay/model/enum/report_status.rb +17 -0
  136. data/lib/mangopay/model/enum/report_type.rb +13 -0
  137. data/lib/mangopay/model/enum/secure_mode.rb +16 -0
  138. data/lib/mangopay/model/enum/transaction_nature.rb +17 -0
  139. data/lib/mangopay/model/enum/transaction_status.rb +15 -0
  140. data/lib/mangopay/model/enum/transaction_type.rb +15 -0
  141. data/lib/mangopay/model/enum/ubo_declaration_refused_reason_type.rb +19 -0
  142. data/lib/mangopay/model/enum/ubo_declaration_status.rb +21 -0
  143. data/lib/mangopay/model/event.rb +18 -0
  144. data/lib/mangopay/model/model.rb +194 -0
  145. data/lib/mangopay/model/money.rb +17 -0
  146. data/lib/mangopay/model/pay_in_web_extended_view.rb +31 -0
  147. data/lib/mangopay/model/refund_reason.rb +15 -0
  148. data/lib/mangopay/model/report_filter.rb +83 -0
  149. data/lib/mangopay/model/request/cancel_request.rb +16 -0
  150. data/lib/mangopay/model/request/complete_registration_request.rb +13 -0
  151. data/lib/mangopay/model/request/currency_request.rb +13 -0
  152. data/lib/mangopay/model/request/deactivation_request.rb +10 -0
  153. data/lib/mangopay/model/request/filter_request.rb +38 -0
  154. data/lib/mangopay/model/request/submit_document_request.rb +14 -0
  155. data/lib/mangopay/model/request/submit_ubo_declaration_request.rb +14 -0
  156. data/lib/mangopay/model/request/upload_file_request.rb +9 -0
  157. data/lib/mangopay/model/response_replica.rb +27 -0
  158. data/lib/mangopay/util/custom_formatter.rb +12 -0
  159. data/lib/mangopay/util/custom_logger.rb +34 -0
  160. data/lib/mangopay/util/enum.rb +52 -0
  161. data/lib/mangopay/util/file_encoder.rb +16 -0
  162. data/lib/mangopay/util/non_instantiable.rb +6 -0
  163. data/lib/mangopay/util/storage_strategy.rb +10 -0
  164. data/lib/mangopay/util/void_logger.rb +6 -0
  165. data/mangopay.gemspec +32 -0
  166. data/spec/context/address_context.rb +25 -0
  167. data/spec/context/bank_account_context.rb +138 -0
  168. data/spec/context/card_context.rb +46 -0
  169. data/spec/context/client_context.rb +45 -0
  170. data/spec/context/dispute_context.rb +37 -0
  171. data/spec/context/dispute_document_context.rb +20 -0
  172. data/spec/context/hook_context.rb +16 -0
  173. data/spec/context/kyc_document_context.rb +23 -0
  174. data/spec/context/mandate_context.rb +27 -0
  175. data/spec/context/pay_in_context.rb +225 -0
  176. data/spec/context/pay_out_context.rb +39 -0
  177. data/spec/context/pre_authorization_context.rb +41 -0
  178. data/spec/context/refund_context.rb +33 -0
  179. data/spec/context/report_context.rb +22 -0
  180. data/spec/context/repudiation_context.rb +19 -0
  181. data/spec/context/settlement_transfer_context.rb +28 -0
  182. data/spec/context/transfer_context.rb +51 -0
  183. data/spec/context/ubo_declaration_context.rb +25 -0
  184. data/spec/context/user_context.rb +83 -0
  185. data/spec/context/wallet_context.rb +53 -0
  186. data/spec/mangopay/bank_accounts_spec.rb +229 -0
  187. data/spec/mangopay/cards_spec.rb +135 -0
  188. data/spec/mangopay/client_wallets_spec.rb +148 -0
  189. data/spec/mangopay/clients_spec.rb +55 -0
  190. data/spec/mangopay/configuration_spec.rb +126 -0
  191. data/spec/mangopay/dispute_documents_spec.rb +174 -0
  192. data/spec/mangopay/disputes_spec.rb +265 -0
  193. data/spec/mangopay/e_money_spec.rb +38 -0
  194. data/spec/mangopay/events_spec.rb +50 -0
  195. data/spec/mangopay/hooks_spec.rb +71 -0
  196. data/spec/mangopay/kyc_documents_spec.rb +180 -0
  197. data/spec/mangopay/mandates_spec.rb +219 -0
  198. data/spec/mangopay/oauth_tokens_spec.rb +41 -0
  199. data/spec/mangopay/pay_ins_spec.rb +181 -0
  200. data/spec/mangopay/pay_outs_spec.rb +39 -0
  201. data/spec/mangopay/pre_authorizations_spec.rb +58 -0
  202. data/spec/mangopay/refunds_spec.rb +40 -0
  203. data/spec/mangopay/reports_spec.rb +121 -0
  204. data/spec/mangopay/responses_spec.rb +295 -0
  205. data/spec/mangopay/settlement_transfers_spec.rb +37 -0
  206. data/spec/mangopay/transactions_spec.rb +233 -0
  207. data/spec/mangopay/transfers_spec.rb +38 -0
  208. data/spec/mangopay/ubo_declarations_spec.rb +65 -0
  209. data/spec/mangopay/users_spec.rb +146 -0
  210. data/spec/mangopay/wallets_spec.rb +104 -0
  211. data/spec/resources/logo.png +0 -0
  212. data/spec/resources/test_pdf.pdf +0 -0
  213. data/spec/spec_helper.rb +72 -0
  214. metadata +349 -0
@@ -0,0 +1,18 @@
1
+ require_relative '../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # The Event entity
6
+ class Event
7
+ include MangoPay::Jsonifier
8
+
9
+ # [String] Its ID
10
+ attr_accessor :resource_id
11
+
12
+ # [Integer] Time when the event happened (UNIX timestamp)
13
+ attr_accessor :date
14
+
15
+ # [EventType] Its type
16
+ attr_accessor :event_type
17
+ end
18
+ end
@@ -0,0 +1,194 @@
1
+ require 'date'
2
+ require_relative 'entity/entity_base'
3
+ require_relative 'enum/country_iso'
4
+ require_relative 'enum/person_type'
5
+ require_relative 'enum/legal_person_type'
6
+ require_relative 'enum/income_range'
7
+ require_relative 'enum/kyc_level'
8
+ require_relative 'enum/deposit_type'
9
+ require_relative 'enum/currency_iso'
10
+ require_relative 'enum/funds_type'
11
+ require_relative 'enum/platform_type'
12
+ require_relative 'enum/account_type'
13
+ require_relative 'enum/transaction_type'
14
+ require_relative 'enum/transaction_nature'
15
+ require_relative 'enum/transaction_status'
16
+ require_relative 'enum/pay_in_payment_type'
17
+ require_relative 'enum/pay_in_execution_type'
18
+ require_relative 'enum/card_type'
19
+ require_relative 'enum/secure_mode'
20
+ require_relative 'enum/culture_code'
21
+ require_relative 'enum/card_status'
22
+ require_relative 'enum/card_validity'
23
+ require_relative 'enum/pre_authorization_status'
24
+ require_relative 'enum/pre_authorization_execution_type'
25
+ require_relative 'enum/payment_status'
26
+ require_relative 'enum/direct_debit_type'
27
+ require_relative 'enum/mandate_scheme'
28
+ require_relative 'enum/mandate_status'
29
+ require_relative 'enum/mandate_type'
30
+ require_relative 'enum/mandate_execution_type'
31
+ require_relative 'enum/pay_out_payment_type'
32
+ require_relative 'enum/kyc_doc_refused_reason_type'
33
+ require_relative 'enum/kyc_document_type'
34
+ require_relative 'enum/document_status'
35
+ require_relative 'enum/natural_user_capacity'
36
+ require_relative 'enum/ubo_declaration_status'
37
+ require_relative 'enum/ubo_declaration_refused_reason_type'
38
+ require_relative 'enum/declared_ubo_status'
39
+ require_relative 'enum/declared_ubo_refused_reason_type'
40
+ require_relative 'enum/hook_validity'
41
+ require_relative 'enum/event_type'
42
+ require_relative 'enum/refund_reason_type'
43
+ require_relative 'enum/dispute_type'
44
+ require_relative 'enum/dispute_reason_type'
45
+ require_relative 'enum/dispute_status'
46
+ require_relative 'enum/dispute_doc_refused_reason_type'
47
+ require_relative 'enum/download_format'
48
+ require_relative 'enum/report_type'
49
+ require_relative 'enum/report_status'
50
+ require_relative 'entity/user/user'
51
+ require_relative 'entity/user/natural_user'
52
+ require_relative 'entity/user/legal_user'
53
+ require_relative 'entity/card'
54
+ require_relative 'entity/client'
55
+ require_relative 'entity/transaction'
56
+ require_relative 'entity/transfer'
57
+ require_relative 'entity/pre_authorization'
58
+ require_relative 'entity/repudiation'
59
+ require_relative 'entity/settlement_transfer'
60
+ require_relative 'event'
61
+ require_relative 'address'
62
+ require_relative 'money'
63
+ require_relative 'entity/wallet'
64
+ require_relative 'e_money'
65
+ require_relative 'refund_reason'
66
+ require_relative 'document_page_consult'
67
+ require_relative 'dispute_reason'
68
+
69
+ # Module for model classes.
70
+ module MangoModel
71
+
72
+ # Maps each type to its existing declared field names.
73
+ @fields_by_type = {
74
+ DateTime => %w[date],
75
+ PersonType => %w[person_type],
76
+ KycLevel => %w[kyc_level],
77
+ LegalPersonType => %w[legal_person_type],
78
+ CountryIso => %w[country
79
+ nationality
80
+ country_of_residence
81
+ legal_representative_nationality
82
+ legal_representative_country_of_residence],
83
+ Address => %w[address
84
+ headquarters_address
85
+ legal_representative_address
86
+ owner_address],
87
+ DepositType => %w[deposit_account_type],
88
+ Money => %w[balance
89
+ credited_e_money
90
+ debited_e_money
91
+ debited_funds
92
+ credited_funds
93
+ fees
94
+ declared_debited_funds
95
+ declared_fees
96
+ disputed_funds
97
+ contested_funds],
98
+ CurrencyIso => %w[currency],
99
+ FundsType => %w[funds_type],
100
+ PlatformType => %w[platform_type],
101
+ TransactionNature => %w[nature],
102
+ TransactionStatus => %w[status],
103
+ TransactionType => %w[type initial_transaction_type],
104
+ PayInPaymentType => %w[payment_type],
105
+ PayInExecutionType => %w[execution_type],
106
+ CardType => %w[card_type],
107
+ SecureMode => %w[secure_mode],
108
+ CultureCode => %w[culture],
109
+ CardValidity => %w[validity],
110
+ PaymentStatus => %w[payment_status],
111
+ DirectDebitType => %w[direct_debit_type],
112
+ MandateScheme => %w[scheme],
113
+ MandateType => %w[mandate_type],
114
+ KycDocRefusedReasonType => %w[refused_reason_type],
115
+ NaturalUserCapacity => %w[capacity],
116
+ EventType => %w[event_type],
117
+ RefundReason => %w[refund_reason],
118
+ RefundReasonType => %w[refund_reason_type],
119
+ DisputeType => %w[dispute_type],
120
+ DisputeReason => %w[dispute_reason],
121
+ DisputeReasonType => %w[dispute_reason_type],
122
+ DownloadFormat => %w[download_format],
123
+ ReportType => %w[report_type]
124
+ }
125
+
126
+ class << self
127
+
128
+ # Returns an array containing all declared
129
+ # field names of a certain type
130
+ #
131
+ # noinspection RubyResolve
132
+ def fields_of_type(type)
133
+ @fields_by_type[type]
134
+ end
135
+
136
+ # Asserts the type of pay-in represented by a hash
137
+ #
138
+ # @param +hash+ [Hash] source hash
139
+ # @return [Class] type of pay-in represented by the hash
140
+ def pay_in_type(hash)
141
+ if hash['PaymentType'] == PayInPaymentType::CARD.to_s\
142
+ && hash['ExecutionType'] == PayInExecutionType::WEB.to_s
143
+ CardWebPayIn
144
+ elsif hash['PaymentType'] == PayInPaymentType::CARD.to_s\
145
+ && hash['ExecutionType'] == PayInExecutionType::DIRECT.to_s
146
+ CardDirectPayIn
147
+ elsif hash['PaymentType'] == PayInPaymentType::PREAUTHORIZED.to_s\
148
+ && hash['ExecutionType'] == PayInExecutionType::DIRECT.to_s
149
+ CardPreAuthorizedPayIn
150
+ elsif hash['PaymentType'] == PayInPaymentType::BANK_WIRE.to_s\
151
+ && hash['ExecutionType'] == PayInExecutionType::DIRECT.to_s
152
+ BankWireDirectPayIn
153
+ elsif hash['PaymentType'] == PayInPaymentType::DIRECT_DEBIT.to_s\
154
+ && hash['ExecutionType'] == PayInExecutionType::WEB.to_s
155
+ DirectDebitWebPayIn
156
+ elsif hash['PaymentType'] == PayInPaymentType::DIRECT_DEBIT.to_s\
157
+ && hash['ExecutionType'] == PayInExecutionType::DIRECT.to_s
158
+ DirectDebitDirectPayIn
159
+ end
160
+ end
161
+
162
+ # Asserts the type of bank account represented by a hash.
163
+ #
164
+ # @param +hash+ [Hash] source hash
165
+ # @return [Class] type of bank account represented by the hash
166
+ def bank_account_type(hash)
167
+ case hash['Type']
168
+ when AccountType::IBAN.to_s
169
+ IbanBankAccount
170
+ when AccountType::US.to_s
171
+ UsBankAccount
172
+ when AccountType::CA.to_s
173
+ CaBankAccount
174
+ when AccountType::GB.to_s
175
+ GbBankAccount
176
+ else
177
+ OtherBankAccount
178
+ end
179
+ end
180
+
181
+ # Asserts the type of user represented by a hash.
182
+ #
183
+ # @param +hash+ [Hash] source hash
184
+ # @return [Class] type of user represented by the hash
185
+ def user_type(hash)
186
+ case hash['PersonType']
187
+ when PersonType::NATURAL.to_s
188
+ NaturalUser
189
+ else
190
+ LegalUser
191
+ end
192
+ end
193
+ end
194
+ end
@@ -0,0 +1,17 @@
1
+ require_relative '../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # Models a financial sum
6
+ class Money
7
+ include MangoPay::Jsonifier
8
+
9
+ # [CurrencyIso] Currency in which the sum is represented
10
+ attr_accessor :currency
11
+
12
+ # [Integer] The amount of money in the smallest sub-division of the currency
13
+ # e.g. 12.60 EUR would be represented as 1260 whereas 12 JPY
14
+ # would be represented as just 12
15
+ attr_accessor :amount
16
+ end
17
+ end
@@ -0,0 +1,31 @@
1
+ require_relative '../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # The Pay-In Web Extended View is an object which provides
6
+ # more details about the card used to process a Web Pay-In
7
+ class PayInWebExtendedView
8
+ include MangoPay::Jsonifier
9
+
10
+ # [String] The item's ID
11
+ attr_accessor :id
12
+
13
+ # [PayInPaymentType] The type of pay-in
14
+ attr_accessor :payment_type
15
+
16
+ # [Integer] Time when the transaction happened (UNIX timestamp)
17
+ attr_accessor :execution_date
18
+
19
+ # [String] The expiry date of the card (MMYY format)
20
+ attr_accessor :expiration_date
21
+
22
+ # [String] A partially obfuscated version of the credit card number
23
+ attr_accessor :alias
24
+
25
+ # [CardType] The type of card
26
+ attr_accessor :card_type
27
+
28
+ # [CountryIso] Country of the address
29
+ attr_accessor :country
30
+ end
31
+ end
@@ -0,0 +1,15 @@
1
+ require_relative '../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # Reason for a refund
6
+ class RefundReason
7
+ include MangoPay::Jsonifier
8
+
9
+ # [RefundReasonType] Type of reason for refusal
10
+ attr_accessor :refused_reason_type
11
+
12
+ # [String] Message accompanying a refusal
13
+ attr_accessor :refused_reason_message
14
+ end
15
+ end
@@ -0,0 +1,83 @@
1
+ require_relative '../common/jsonifier'
2
+
3
+ # Filtering object for reports
4
+ class ReportFilter
5
+ include MangoPay::Jsonifier
6
+
7
+ #
8
+ # COMMON
9
+ #
10
+
11
+ # [Integer] Only include resources with CreationDate
12
+ # before this time (UNIX timestamp)
13
+ attr_accessor :before_date
14
+
15
+ # [Integer] Only include resources with CreationDate
16
+ # after this time (UNIX timestamp)
17
+ attr_accessor :after_date
18
+
19
+ #
20
+ # TRANSACTION
21
+ #
22
+
23
+ # [Array] Only include transactions of these +TransactionType+s
24
+ attr_accessor :type
25
+
26
+ # [Array] Only include transactions with these +TransactionStatus+es
27
+ attr_accessor :status
28
+
29
+ # [Array] Only include transactions of these +TransactionNature+s
30
+ attr_accessor :nature
31
+
32
+ # [Integer] The minimum amount of debited funds
33
+ attr_accessor :min_debited_funds_amount
34
+
35
+ # [CurrencyIso] The currency of minimum debited funds
36
+ attr_accessor :min_debited_funds_currency
37
+
38
+ # [Integer] The maximum amount of debited funds
39
+ attr_accessor :max_debited_funds_amount
40
+
41
+ # [CurrencyIso] The currency of maximum debited funds
42
+ attr_accessor :max_debited_funds_currency
43
+
44
+ # [Integer] The minimum amount of fees
45
+ attr_accessor :min_fees_amount
46
+
47
+ # [CurrencyIso] The currency of minimum fees
48
+ attr_accessor :min_fees_currency
49
+
50
+ # [Integer] The maximum amount of fees
51
+ attr_accessor :max_fees_amount
52
+
53
+ # [CurrencyIso] The currency of maximum fees
54
+ attr_accessor :max_fees_currency
55
+
56
+ # [String] Only include resources with this author ID
57
+ attr_accessor :author_id
58
+
59
+ # [String] Only include resources with this wallet ID
60
+ attr_accessor :wallet_id
61
+
62
+ #
63
+ # WALLET
64
+ #
65
+
66
+ # [String] Only include wallets having owner with this ID
67
+ attr_accessor :owner_id
68
+
69
+ # [CurrencyIso] Only include wallets of this currency
70
+ attr_accessor :currency
71
+
72
+ # [Integer] The minimum balance of wallets to include
73
+ attr_accessor :min_balance_amount
74
+
75
+ # [CurrencyIso] The currency of minimum balance
76
+ attr_accessor :min_balance_currency
77
+
78
+ # [Integer] The maximum balance of wallets to include
79
+ attr_accessor :max_balance_amount
80
+
81
+ # [CurrencyIso] The currency of maximum balance
82
+ attr_accessor :max_balance_currency
83
+ end
@@ -0,0 +1,16 @@
1
+ require_relative '../../common/jsonifier'
2
+
3
+ # Model object of request to cancel an action
4
+ class CancelRequest
5
+ include MangoPay::Jsonifier
6
+
7
+ # [String] Custom data to add with the operation
8
+ attr_accessor :tag
9
+
10
+ # [PaymentStatus] +CANCELED+ payment status
11
+ attr_accessor :payment_status
12
+
13
+ def initialize
14
+ self.payment_status = MangoModel::PaymentStatus::CANCELED
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ require_relative '../../common/jsonifier'
2
+
3
+ # Model object for body of request to complete a card registration
4
+ class CompleteRegistrationRequest
5
+ include MangoPay::Jsonifier
6
+
7
+ # [String] Registration key received from the Tokenization Server
8
+ attr_accessor :registration_data
9
+
10
+ def initialize(registration_data)
11
+ self.registration_data = registration_data
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ require_relative '../../common/jsonifier'
2
+
3
+ # Model object for body of request to represent results in a certain currency.
4
+ class CurrencyRequest
5
+ include MangoPay::Jsonifier
6
+
7
+ # [CurrencyIso] the currency in which to represent results
8
+ attr_accessor :currency
9
+
10
+ def initialize(currency)
11
+ self.currency = currency
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ require_relative '../../common/jsonifier'
2
+
3
+ # Model object for body of request to deactivate a bank account
4
+ class DeactivationRequest
5
+ include MangoPay::Jsonifier
6
+
7
+ def initialize
8
+ @active = false
9
+ end
10
+ end
@@ -0,0 +1,38 @@
1
+ # Requests filtering of response lists
2
+ class FilterRequest
3
+
4
+ # [Integer] Number of the page of results to be retrieved
5
+ attr_accessor :page
6
+
7
+ # [Integer] Number of results to be included per page
8
+ attr_accessor :per_page
9
+
10
+ # [SortField] Field by which to sort results
11
+ attr_accessor :sort_field
12
+
13
+ # [SortDirection] Direction of sorting by specified field
14
+ attr_accessor :sort_direction
15
+
16
+ # [Integer] Maximum creation date of result entities
17
+ attr_accessor :before_date
18
+
19
+ # [Integer] Minimum creation date of result entities
20
+ attr_accessor :after_date
21
+
22
+ # [DocumentStatus/TransactionStatus/DisputeStatus] Status of entities
23
+ # to be retrieved
24
+ attr_accessor :status
25
+
26
+ # [TransactionNature] Nature of transaction entities to be retrieved
27
+ attr_accessor :nature
28
+
29
+ # [TransactionType/DisputeDocumentType] Type of entities to be retrieved
30
+ attr_accessor :type
31
+
32
+ # [DisputeType] Type of dispute entities to be retrieved
33
+ attr_accessor :dispute_type
34
+
35
+ # [EventType] Type of events to be retrieved
36
+ attr_accessor :event_type
37
+
38
+ end