mangopay 3.0.11 → 3.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/README.md +26 -0
  4. data/lib/mangopay.rb +97 -105
  5. data/lib/mangopay/bank_account.rb +4 -4
  6. data/lib/mangopay/card.rb +2 -2
  7. data/lib/mangopay/card_registration.rb +3 -3
  8. data/lib/mangopay/client.rb +1 -1
  9. data/lib/mangopay/errors.rb +35 -1
  10. data/lib/mangopay/event.rb +16 -16
  11. data/lib/mangopay/hook.rb +3 -3
  12. data/lib/mangopay/http_calls.rb +1 -1
  13. data/lib/mangopay/json.rb +6 -15
  14. data/lib/mangopay/kyc_document.rb +3 -3
  15. data/lib/mangopay/legal_user.rb +2 -2
  16. data/lib/mangopay/natural_user.rb +2 -2
  17. data/lib/mangopay/pay_in.rb +47 -0
  18. data/lib/mangopay/pay_out.rb +13 -0
  19. data/lib/mangopay/pre_authorization.rb +11 -0
  20. data/lib/mangopay/refund.rb +1 -1
  21. data/lib/mangopay/resource.rb +3 -3
  22. data/lib/mangopay/transaction.rb +1 -1
  23. data/lib/mangopay/transfer.rb +3 -3
  24. data/lib/mangopay/user.rb +3 -3
  25. data/lib/mangopay/version.rb +1 -1
  26. data/lib/mangopay/wallet.rb +5 -5
  27. data/mangopay.gemspec +3 -6
  28. data/spec/{lib/mangopay → mangopay}/authorization_token_spec.rb +70 -72
  29. data/spec/{lib/mangopay → mangopay}/bank_account_spec.rb +0 -2
  30. data/spec/{lib/mangopay → mangopay}/card_registration_spec.rb +0 -2
  31. data/spec/{lib/mangopay → mangopay}/client_spec.rb +2 -4
  32. data/spec/{lib/mangopay → mangopay}/configuration_spec.rb +18 -20
  33. data/spec/{lib/mangopay → mangopay}/event_spec.rb +31 -33
  34. data/spec/{lib/mangopay → mangopay}/fetch_filters_spec.rb +0 -2
  35. data/spec/{lib/mangopay → mangopay}/hook_spec.rb +0 -2
  36. data/spec/{lib/mangopay → mangopay}/kyc_document_spec.rb +58 -60
  37. data/spec/{lib/mangopay → mangopay}/payin_bankwire_direct_spec.rb +0 -2
  38. data/spec/{lib/mangopay → mangopay}/payin_card_direct_spec.rb +0 -2
  39. data/spec/{lib/mangopay → mangopay}/payin_card_web_spec.rb +54 -56
  40. data/spec/{lib/mangopay → mangopay}/payin_preauthorized_direct_spec.rb +0 -2
  41. data/spec/{lib/mangopay → mangopay}/payout_bankwire_spec.rb +54 -56
  42. data/spec/{lib/mangopay → mangopay}/preauthorization_spec.rb +0 -2
  43. data/spec/{lib/mangopay → mangopay}/refund_spec.rb +0 -2
  44. data/spec/{lib/mangopay → mangopay}/shared_resources.rb +0 -4
  45. data/spec/{lib/mangopay → mangopay}/transaction_spec.rb +0 -2
  46. data/spec/{lib/mangopay → mangopay}/transfer_spec.rb +0 -2
  47. data/spec/{lib/mangopay → mangopay}/user_spec.rb +0 -2
  48. data/spec/{lib/mangopay → mangopay}/wallet_spec.rb +87 -89
  49. data/spec/spec_helper.rb +28 -20
  50. metadata +53 -95
  51. data/lib/mangopay/payin.rb +0 -47
  52. data/lib/mangopay/payout.rb +0 -13
  53. data/lib/mangopay/preauthorization.rb +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 62d1fd05f9cca7749256d14345f39d803570131e
4
- data.tar.gz: 7e6a7b0c24c54dcb5e3ebaabdd082bb066308aa0
3
+ metadata.gz: 57a5f31ff878a4a9988ae5bbbeec2bd486f12c9a
4
+ data.tar.gz: b6f9ade3a53e81ed24050cda7ed5af6ba44af521
5
5
  SHA512:
6
- metadata.gz: cba7b0b6b7160be2d3338e644475eb6f29c9303d5d7c2d97aeea90368dd0d39d0d687b36fc0c57aa0fbd189db483a5f9030344f784358177a3c9c131b8426b8d
7
- data.tar.gz: 780a87a3ec7a9d9b63f4a760378e6478dbca05d7b05a7948fcc3652d7612501a84d435d477167f4b63d939cb396ff9ad792de0fc3865be3b392b518bef67e32c
6
+ metadata.gz: f41b043ef15a410cb45269d7f244176d75f10744ad565f2601032e22ea97be59e6d5beddc5fc933f45ce937a6ce80e4302d29e02554c73688645b1d115043017
7
+ data.tar.gz: 3a32c7cf5bd666e30a54cfb0e789f09b0d09a14b9cdb4d03094b31198f78a566e76925db4c2b3755c5be1067ecd4f6890345efb3a95bc6a300894191e30c4f72
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
1
  --color
2
2
  --profile
3
+ --r spec_helper
data/README.md CHANGED
@@ -34,6 +34,7 @@ between you and the MangoPay Team.
34
34
  ```ruby
35
35
  require 'mangopay'
36
36
 
37
+
37
38
  # configuration (not required if Rails generator fired as above)
38
39
  MangoPay.configure do |c|
39
40
  c.preproduction = true
@@ -41,19 +42,44 @@ MangoPay.configure do |c|
41
42
  c.client_passphrase = 'YOUR_CLIENT_PASSWORD'
42
43
  end
43
44
 
45
+
44
46
  # get some user by id
45
47
  john = MangoPay::User.fetch(john_id) # => {FirstName"=>"John", "LastName"=>"Doe", ...}
46
48
 
49
+
47
50
  # update some of his data
48
51
  MangoPay::NaturalUser.update(john_id, {'LastName' => 'CHANGED'}) # => {FirstName"=>"John", "LastName"=>"CHANGED", ...}
49
52
 
53
+
50
54
  # get all users (with pagination)
51
55
  pagination = {'page' => 1, 'per_page' => 8} # get 1st page, 8 items per page
52
56
  users = MangoPay::User.fetch(pagination) # => [{...}, ...]: list of 8 users data hashes
53
57
  pagination # => {"page"=>1, "per_page"=>8, "total_pages"=>748, "total_items"=>5978}
54
58
 
59
+
55
60
  # get John's bank accounts
56
61
  accounts = MangoPay::BankAccount.fetch(john_id) # => [{...}, ...]: list of accounts data hashes (10 per page by default)
62
+
63
+
64
+ # errors handling
65
+ begin
66
+ MangoPay::NaturalUser.create({})
67
+ rescue MangoPay::ResponseError => ex
68
+
69
+ ex # => #<MangoPay::ResponseError: One or several required parameters are missing or incorrect. [...] FirstName: The FirstName field is required. LastName: The LastName field is required. Nationality: The Nationality field is required.>
70
+
71
+ ex.details # => {
72
+ # "Message"=>"One or several required parameters are missing or incorrect. [...]",
73
+ # "Type"=>"param_error",
74
+ # "Id"=>"5c080105-4da3-467d-820d-0906164e55fe",
75
+ # "Date"=>1409048671.0,
76
+ # "errors"=>{
77
+ # "FirstName"=>"The FirstName field is required.",
78
+ # "LastName"=>"The LastName field is required.", ...},
79
+ # "Code"=>"400",
80
+ # "Url"=>"/v2/.../users/natural"
81
+ # }
82
+ end
57
83
  ```
58
84
 
59
85
  ### Tests
data/lib/mangopay.rb CHANGED
@@ -4,139 +4,131 @@ require 'multi_json'
4
4
 
5
5
  # helpers
6
6
  require 'mangopay/version'
7
- require 'mangopay/json'
8
7
  require 'mangopay/errors'
9
- require 'mangopay/authorization_token'
10
-
11
- # resources
12
- require 'mangopay/http_calls'
13
- require 'mangopay/resource'
14
- require 'mangopay/client'
15
- require 'mangopay/user'
16
- require 'mangopay/natural_user'
17
- require 'mangopay/legal_user'
18
- require 'mangopay/payin'
19
- require 'mangopay/payout'
20
- require 'mangopay/transfer'
21
- require 'mangopay/transaction'
22
- require 'mangopay/wallet'
23
- require 'mangopay/bank_account'
24
- require 'mangopay/card_registration'
25
- require 'mangopay/preauthorization'
26
- require 'mangopay/card'
27
- require 'mangopay/event'
28
- require 'mangopay/kyc_document'
29
- require 'mangopay/hook'
30
- require 'mangopay/refund'
8
+
31
9
 
32
10
  module MangoPay
33
11
 
12
+ autoload :HTTPCalls, 'mangopay/http_calls'
13
+ autoload :Resource, 'mangopay/resource'
14
+ autoload :Client, 'mangopay/client'
15
+ autoload :User, 'mangopay/user'
16
+ autoload :NaturalUser, 'mangopay/natural_user'
17
+ autoload :LegalUser, 'mangopay/legal_user'
18
+ autoload :PayIn, 'mangopay/pay_in'
19
+ autoload :PayOut, 'mangopay/pay_out'
20
+ autoload :Transfer, 'mangopay/transfer'
21
+ autoload :Transaction, 'mangopay/transaction'
22
+ autoload :Wallet, 'mangopay/wallet'
23
+ autoload :BankAccount, 'mangopay/bank_account'
24
+ autoload :CardRegistration, 'mangopay/card_registration'
25
+ autoload :PreAuthorization, 'mangopay/pre_authorization'
26
+ autoload :Card, 'mangopay/card'
27
+ autoload :Event, 'mangopay/event'
28
+ autoload :KycDocument, 'mangopay/kyc_document'
29
+ autoload :Hook, 'mangopay/hook'
30
+ autoload :Refund, 'mangopay/refund'
31
+ autoload :JSON, 'mangopay/json'
32
+ autoload :AuthorizationToken, 'mangopay/authorization_token'
33
+
34
34
  class Configuration
35
35
  attr_accessor :preproduction, :root_url,
36
- :client_id, :client_passphrase,
37
- :temp_dir
36
+ :client_id, :client_passphrase,
37
+ :temp_dir
38
38
 
39
39
  def preproduction
40
40
  @preproduction || false
41
41
  end
42
42
 
43
43
  def root_url
44
- @root_url || (@preproduction == true ? "https://api.sandbox.mangopay.com" : "https://api.mangopay.com")
44
+ @root_url || (@preproduction == true ? "https://api.sandbox.mangopay.com" : "https://api.mangopay.com")
45
45
  end
46
46
  end
47
47
 
48
48
  class << self
49
49
  attr_accessor :configuration
50
- end
51
-
52
- def self.configure
53
- self.configuration ||= Configuration.new
54
- yield configuration
55
- end
56
50
 
57
- def self.api_uri(url='')
58
- URI(configuration.root_url + url)
59
- end
60
-
61
- #
62
- # - +method+: HTTP method; lowercase symbol, e.g. :get, :post etc.
63
- # - +url+: the part after Configuration#root_url
64
- # - +params+: hash; entity data for creation, update etc.; will dump it by JSON and assign to Net::HTTPRequest#body
65
- # - +filters+: hash; pagination params etc.; will encode it by URI and assign to URI#query
66
- # - +headers+: hash; request_headers by default
67
- # - +before_request_proc+: optional proc; will call it passing the Net::HTTPRequest instance just before Net::HTTPRequest#request
68
- #
69
- # Raises MangoPay::ResponseError if response code != 200.
70
- #
71
- def self.request(method, url, params={}, filters={}, headers = request_headers, before_request_proc = nil)
72
- uri = api_uri(url)
73
- uri.query = URI.encode_www_form(filters) unless filters.empty?
74
-
75
- res = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
76
- req = Net::HTTP::const_get(method.capitalize).new(uri.request_uri, headers)
77
- req.body = MangoPay::JSON.dump(params)
78
- before_request_proc.call(req) if before_request_proc
79
- http.request req
51
+ def api_path
52
+ "/v2/#{MangoPay.configuration.client_id}"
80
53
  end
81
54
 
82
- # decode json data
83
- begin
84
- data = MangoPay::JSON.load(res.body.nil? ? '' : res.body)
85
- rescue MultiJson::LoadError
86
- data = {}
55
+ def configure
56
+ self.configuration ||= Configuration.new
57
+ yield configuration
87
58
  end
88
59
 
89
- ############### TEMP!!!! #######################################################
90
- #pp method, uri.request_uri, params #, filters, headers
91
- #pp res, data
92
- #puts
93
-
94
- if (!(res.is_a? Net::HTTPOK))
95
- ex = MangoPay::ResponseError.new(uri, res.code, data)
96
- ############## TEMP!!!! ########################################################
97
- #pp ex, data
98
- raise ex
60
+ def api_uri(url='')
61
+ URI(configuration.root_url + url)
99
62
  end
100
63
 
101
- # copy pagination info if any
102
- ['x-number-of-pages', 'x-number-of-items'].each { |k|
103
- filters[k.gsub('x-number-of-', 'total_')] = res[k].to_i if res[k]
104
- }
105
-
106
- data
107
- end
108
-
109
- private
64
+ #
65
+ # - +method+: HTTP method; lowercase symbol, e.g. :get, :post etc.
66
+ # - +url+: the part after Configuration#root_url
67
+ # - +params+: hash; entity data for creation, update etc.; will dump it by JSON and assign to Net::HTTPRequest#body
68
+ # - +filters+: hash; pagination params etc.; will encode it by URI and assign to URI#query
69
+ # - +headers+: hash; request_headers by default
70
+ # - +before_request_proc+: optional proc; will call it passing the Net::HTTPRequest instance just before Net::HTTPRequest#request
71
+ #
72
+ # Raises MangoPay::ResponseError if response code != 200.
73
+ #
74
+ def request(method, url, params={}, filters={}, headers = request_headers, before_request_proc = nil)
75
+ uri = api_uri(url)
76
+ uri.query = URI.encode_www_form(filters) unless filters.empty?
77
+
78
+ res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
79
+ req = Net::HTTP::const_get(method.capitalize).new(uri.request_uri, headers)
80
+ req.body = JSON.dump(params)
81
+ before_request_proc.call(req) if before_request_proc
82
+ http.request req
83
+ end
84
+
85
+ # decode json data
86
+ data = JSON.load(res.body.to_s) rescue {}
87
+
88
+
89
+ unless res.is_a?(Net::HTTPOK)
90
+ raise MangoPay::ResponseError.new(uri, res.code, data)
91
+ end
92
+
93
+ # copy pagination info if any
94
+ ['x-number-of-pages', 'x-number-of-items'].each { |k|
95
+ filters[k.gsub('x-number-of-', 'total_')] = res[k].to_i if res[k]
96
+ }
97
+
98
+ data
99
+ end
110
100
 
111
- def self.user_agent
112
- @uname ||= get_uname
101
+ private
113
102
 
114
- {
115
- bindings_version: MangoPay::VERSION,
116
- lang: 'ruby',
117
- lang_version: "#{RUBY_VERSION} p#{RUBY_PATCHLEVEL} (#{RUBY_RELEASE_DATE})",
118
- platform: RUBY_PLATFORM,
119
- uname: @uname
120
- }
121
- end
103
+ def user_agent
104
+ {
105
+ bindings_version: VERSION,
106
+ lang: 'ruby',
107
+ lang_version: "#{RUBY_VERSION} p#{RUBY_PATCHLEVEL} (#{RUBY_RELEASE_DATE})",
108
+ platform: RUBY_PLATFORM,
109
+ uname: get_uname
110
+ }
111
+ end
122
112
 
123
- def self.get_uname
124
- `uname -a 2>/dev/null`.strip if RUBY_PLATFORM =~ /linux|darwin/i
125
- rescue Errno::ENOMEM
126
- 'uname lookup failed'
127
- end
113
+ def get_uname
114
+ `uname -a 2>/dev/null`.strip if RUBY_PLATFORM =~ /linux|darwin/i
115
+ rescue Errno::ENOMEM
116
+ 'uname lookup failed'
117
+ end
128
118
 
129
- def self.request_headers
130
- auth_token = MangoPay::AuthorizationToken::Manager.get_token
131
- headers = {
132
- 'user_agent' => "MangoPay V2 RubyBindings/#{MangoPay::VERSION}",
133
- 'Authorization' => "#{auth_token['token_type']} #{auth_token['access_token']}",
134
- 'Content-Type' => 'application/json'
135
- }
136
- begin
137
- headers.update('x_mangopay_client_user_agent' => MangoPay::JSON.dump(user_agent))
138
- rescue => e
139
- headers.update('x_mangopay_client_raw_user_agent' => user_agent.inspect, error: "#{e} (#{e.class})")
119
+ def request_headers
120
+ auth_token = AuthorizationToken::Manager.get_token
121
+ headers = {
122
+ 'user_agent' => "MangoPay V2 RubyBindings/#{VERSION}",
123
+ 'Authorization' => "#{auth_token['token_type']} #{auth_token['access_token']}",
124
+ 'Content-Type' => 'application/json'
125
+ }
126
+ begin
127
+ headers.update('x_mangopay_client_user_agent' => JSON.dump(user_agent))
128
+ rescue => e
129
+ headers.update('x_mangopay_client_raw_user_agent' => user_agent.inspect, error: "#{e} (#{e.class})")
130
+ end
140
131
  end
132
+
141
133
  end
142
134
  end
@@ -1,6 +1,6 @@
1
1
  module MangoPay
2
2
  class BankAccount < Resource
3
- include MangoPay::HTTPCalls::Fetch
3
+ include HTTPCalls::Fetch
4
4
  class << self
5
5
  def create(user_id, params)
6
6
  type = params.fetch(:Type) { |no_symbol_key| params.fetch('Type') }
@@ -15,15 +15,15 @@ module MangoPay
15
15
  # (+page+, +per_page+; see MangoPay::HTTPCalls::Fetch::ClassMethods#fetch)
16
16
  #
17
17
  def fetch(user_id, bank_account_id_or_filters={})
18
- bank_account_id, filters = MangoPay::HTTPCalls::Fetch.parse_id_or_filters(bank_account_id_or_filters)
18
+ bank_account_id, filters = HTTPCalls::Fetch.parse_id_or_filters(bank_account_id_or_filters)
19
19
  MangoPay.request(:get, url(user_id, bank_account_id), {}, filters)
20
20
  end
21
21
 
22
22
  def url(user_id, bank_account_id = nil)
23
23
  if bank_account_id
24
- "/v2/#{MangoPay.configuration.client_id}/users/#{CGI.escape(user_id.to_s)}/bankaccounts/#{CGI.escape(bank_account_id.to_s)}"
24
+ "#{MangoPay.api_path}/users/#{CGI.escape(user_id.to_s)}/bankaccounts/#{CGI.escape(bank_account_id.to_s)}"
25
25
  else
26
- "/v2/#{MangoPay.configuration.client_id}/users/#{CGI.escape(user_id.to_s)}/bankaccounts"
26
+ "#{MangoPay.api_path}/users/#{CGI.escape(user_id.to_s)}/bankaccounts"
27
27
  end
28
28
  end
29
29
  end
data/lib/mangopay/card.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module MangoPay
2
2
  class Card < Resource
3
- include MangoPay::HTTPCalls::Fetch
4
- include MangoPay::HTTPCalls::Update
3
+ include HTTPCalls::Fetch
4
+ include HTTPCalls::Update
5
5
  end
6
6
  end
@@ -1,7 +1,7 @@
1
1
  module MangoPay
2
2
  class CardRegistration < Resource
3
- include MangoPay::HTTPCalls::Create
4
- include MangoPay::HTTPCalls::Update
5
- include MangoPay::HTTPCalls::Fetch
3
+ include HTTPCalls::Create
4
+ include HTTPCalls::Update
5
+ include HTTPCalls::Fetch
6
6
  end
7
7
  end
@@ -3,7 +3,7 @@ module MangoPay
3
3
 
4
4
  def self.create(params)
5
5
  MangoPay.request(:post, '/api/clients/', params, {}, {
6
- 'user_agent' => "MangoPay V2 RubyBindings/#{MangoPay::VERSION}",
6
+ 'user_agent' => "MangoPay V2 RubyBindings/#{VERSION}",
7
7
  'Content-Type' => 'application/json'
8
8
  })
9
9
  end
@@ -8,17 +8,51 @@ module MangoPay
8
8
 
9
9
  # Thrown from any MangoPay API call whenever
10
10
  # it returns response with HTTP code != 200.
11
+ # Check @details hash for further info.
12
+ #
13
+ # Two example exceptions with details:
14
+ #
15
+ # #<MangoPay::ResponseError:
16
+ # One or several required parameters are missing or incorrect. [...]
17
+ # Email: The Email field is required.>
18
+ # {"Message"=>"One or several required parameters are missing or incorrect.
19
+ # An incorrect resource ID also raises this kind of error.",
20
+ # "Type"=>"param_error",
21
+ # "Id"=>"66936e92-3f21-4a35-b6cf-f1d17c2fb6e5",
22
+ # "Date"=>1409047252.0,
23
+ # "errors"=>{"Email"=>"The Email field is required."},
24
+ # "Code"=>"400",
25
+ # "Url"=>"/v2/sdk-unit-tests/users/natural"}
26
+ #
27
+ # #<MangoPay::ResponseError: Internal Server Error>
28
+ # {"Message"=>"Internal Server Error",
29
+ # "Type"=>"other",
30
+ # "Id"=>"7bdc5c6f-2000-4cd3-96f3-2a3fcb746f07",
31
+ # "Date"=>1409047251.0,
32
+ # "errors"=>nil,
33
+ # "Code"=>"500",
34
+ # "Url"=>"/v2/sdk-unit-tests/payins/3380640/refunds"}
11
35
  class ResponseError < Error
12
36
 
13
37
  attr_reader :request_url, :code, :details
14
38
 
15
39
  def initialize(request_url, code, details)
16
40
  @request_url, @code, @details = request_url, code, details
41
+
42
+ @details['Code'] = code
43
+ @details['Url'] = request_url.request_uri
44
+
17
45
  super(message) if message
18
46
  end
19
47
 
20
- def message; @details['Message']; end
21
48
  def type; @details['Type']; end
22
49
  def errors; @details['errors']; end
50
+
51
+ def message;
52
+ msg = @details['Message']
53
+ msg += errors.sort.map {|k,v| " #{k}: #{v}"}.join if (errors && errors.is_a?(Hash))
54
+ msg
55
+ end
56
+
23
57
  end
24
58
  end
@@ -1,16 +1,16 @@
1
- module MangoPay
2
- class Event < Resource
3
-
4
- # Fetches list of events (PayIns, PayOuts, Transfers).
5
- #
6
- # Optional +filters+ is a hash accepting following keys:
7
- # - +page+, +per_page+: pagination params (see MangoPay::HTTPCalls::Fetch::ClassMethods#fetch)
8
- # - +EventType+: {PAYIN_NORMAL_CREATED, PAYIN_NORMAL_SUCCEEDED, PAYIN_NORMAL_FAILED etc...} (see http://docs.mangopay.com/api-references/events/)
9
- # - +BeforeDate+ (timestamp): filters events with Date _before_ this date
10
- # - +AfterDate+ (timestamp): filters events with Date _after_ this date
11
- #
12
- def self.fetch(filters={})
13
- MangoPay.request(:get, url(), {}, filters)
14
- end
15
- end
16
- end
1
+ module MangoPay
2
+ class Event < Resource
3
+
4
+ # Fetches list of events (PayIns, PayOuts, Transfers).
5
+ #
6
+ # Optional +filters+ is a hash accepting following keys:
7
+ # - +page+, +per_page+: pagination params (see MangoPay::HTTPCalls::Fetch::ClassMethods#fetch)
8
+ # - +EventType+: {PAYIN_NORMAL_CREATED, PAYIN_NORMAL_SUCCEEDED, PAYIN_NORMAL_FAILED etc...} (see http://docs.mangopay.com/api-references/events/)
9
+ # - +BeforeDate+ (timestamp): filters events with Date _before_ this date
10
+ # - +AfterDate+ (timestamp): filters events with Date _after_ this date
11
+ #
12
+ def self.fetch(filters={})
13
+ MangoPay.request(:get, url(), {}, filters)
14
+ end
15
+ end
16
+ end