lib/stripe/account.rb in stripe-1.18.0 vs lib/stripe/account.rb in stripe-1.19.0
- old
+ new
@@ -1,9 +1,35 @@
module Stripe
- class Account < SingletonAPIResource
+ class Account < APIResource
+ include Stripe::APIOperations::Create
+ include Stripe::APIOperations::List
+ include Stripe::APIOperations::Update
+
+ def url
+ if self['id']
+ super
+ else
+ "/v1/account"
+ end
+ end
+
+ # @override To make id optional
+ def self.retrieve(id=nil, opts={})
+ # Account used to be a singleton, where this method's signature was `(opts={})`.
+ # For the sake of not breaking folks who pass in an OAuth key in opts, let's lurkily
+ # string match for it.
+ if opts == {} && id.is_a?(String) && id.start_with?('sk_')
+ # `super` properly assumes a String opts is the apiKey and normalizes as expected.
+ opts = id
+ id = nil
+ end
+ super(id, opts)
+ end
+
def deauthorize(client_id, opts={})
- api_key, headers = Util.parse_opts(opts)
- response, api_key = Stripe.request(:post, '/oauth/deauthorize', api_key, { 'client_id' => client_id, 'stripe_user_id' => self.id }, headers, Stripe.connect_base)
- Util.convert_to_stripe_object(response, api_key)
+ opts = {:api_base => Stripe.connect_base}.merge(Util.normalize_opts(opts))
+ response, opts = request(:post, '/oauth/deauthorize', { 'client_id' => client_id, 'stripe_user_id' => self.id }, opts)
+ opts.delete(:api_base) # the api_base here is a one-off, don't persist it
+ Util.convert_to_stripe_object(response, opts)
end
end
end