Sha256: 7fb34a37f6860cfcfda879d6237f925df412be1ef5d87a2c39f3de56e4c7a105
Contents?: true
Size: 1.38 KB
Versions: 10
Compression:
Stored size: 1.38 KB
Contents
module Pay module Stripe module Subscription def stripe? processor == "stripe" end def stripe_cancel subscription = processor_subscription subscription.cancel_at_period_end = true subscription.save new_ends_at = on_trial? ? trial_ends_at : Time.at(subscription.current_period_end) update(ends_at: new_ends_at) rescue ::Stripe::StripeError => e raise Error, e.message end def stripe_cancel_now! subscription = processor_subscription.delete update(ends_at: Time.zone.now) rescue ::Stripe::StripeError => e raise Error, e.message end def stripe_resume subscription = processor_subscription subscription.plan = processor_plan subscription.trial_end = on_trial? ? trial_ends_at.to_i : 'now' subscription.cancel_at_period_end = false subscription.save rescue ::Stripe::StripeError => e raise Error, e.message end def stripe_swap(plan) subscription = processor_subscription subscription.plan = plan subscription.prorate = prorate subscription.trial_end = on_trial? ? trial_ends_at.to_i : 'now' subscription.quantity = quantity if quantity? subscription.save rescue ::Stripe::StripeError => e raise Error, e.message end end end end
Version data entries
10 entries across 10 versions & 1 rubygems