Class: StripeRails::Charge

Inherits:
Object
  • Object
show all
Defined in:
app/models/stripe_rails/charge.rb

Instance Method Summary collapse

Constructor Details

#initialize(customer) ⇒ Charge

Returns a new instance of Charge.



4
5
6
7
# File 'app/models/stripe_rails/charge.rb', line 4

def initialize(customer)
  @customer = customer
  raise Stripe::InvalidObjectError, 'Object is not a stripe customer!' unless @customer.kind_of? Stripe::Customer
end

Instance Method Details

#all(options = {}) ⇒ Object



9
10
11
# File 'app/models/stripe_rails/charge.rb', line 9

def all(options = {})
  Stripe::Charge.all(options.merge({ customer: @customer.id }))
end

#create(amount, options = {}) ⇒ Object



13
14
15
# File 'app/models/stripe_rails/charge.rb', line 13

def create(amount, options = {})
  Stripe::Charge.create(options.merge({ amount: amount, customer: @customer.id }))
end

#refund(id) ⇒ Object



22
23
24
# File 'app/models/stripe_rails/charge.rb', line 22

def refund(id)
  retrieve(id).refund
end

#retrieve(id) ⇒ Object



17
18
19
20
# File 'app/models/stripe_rails/charge.rb', line 17

def retrieve(id)
  charge = Stripe::Charge.retrieve(id)
  raise Stripe::ChargeAssociationError, 'The charge does not belong to this customer!' unless charge.customer == @customer.id
end