Class: Effective::Customer
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Effective::Customer
- Defined in:
- app/models/effective/customer.rb
Instance Attribute Summary collapse
-
#stripe_customer ⇒ Object
Returns the value of attribute stripe_customer.
Class Method Summary collapse
Instance Method Summary collapse
- #active? ⇒ Boolean
- #email ⇒ Object
- #past_due? ⇒ Boolean
- #payment_status ⇒ Object
- #to_s ⇒ Object
- #token_required? ⇒ Boolean
- #upcoming_invoice ⇒ Object
Instance Attribute Details
#stripe_customer ⇒ Object
Returns the value of attribute stripe_customer.
5 6 7 |
# File 'app/models/effective/customer.rb', line 5 def stripe_customer @stripe_customer end |
Class Method Details
Instance Method Details
#active? ⇒ Boolean
56 57 58 |
# File 'app/models/effective/customer.rb', line 56 def active? subscriptions.present? && subscriptions.all? { |subscription| subscription.active? } end |
#email ⇒ Object
30 31 32 |
# File 'app/models/effective/customer.rb', line 30 def email user.email if user end |
#past_due? ⇒ Boolean
52 53 54 |
# File 'app/models/effective/customer.rb', line 52 def past_due? subscriptions.any? { |subscription| subscription.past_due? } end |
#payment_status ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 |
# File 'app/models/effective/customer.rb', line 60 def payment_status if past_due? 'We ran into an error processing your last payment. Please update or confirm your card details to continue.' elsif active? "Your payment is in good standing. Thanks so much for your support!" elsif active_card.blank? 'No credit card on file. Please add a card.' else 'Please update or confirm your card details to continue.' end.html_safe end |
#to_s ⇒ Object
26 27 28 |
# File 'app/models/effective/customer.rb', line 26 def to_s user.to_s.presence || 'New Customer' end |
#token_required? ⇒ Boolean
48 49 50 |
# File 'app/models/effective/customer.rb', line 48 def token_required? active_card.blank? || past_due? end |
#upcoming_invoice ⇒ Object
41 42 43 44 45 46 |
# File 'app/models/effective/customer.rb', line 41 def upcoming_invoice @upcoming_invoice ||= if stripe_customer_id.present? Rails.logger.info "[STRIPE] get upcoming invoice: #{stripe_customer_id}" ::Stripe::Invoice.upcoming(customer: stripe_customer_id) rescue nil end end |