Sha256: 317b7ea82441b7ef7beabcc1741629378923b32482889915440537b6b2a31e3c
Contents?: true
Size: 1.2 KB
Versions: 3
Compression:
Stored size: 1.2 KB
Contents
module Tang class ImportSubscriptionsJob < ActiveJob::Base queue_as :default def perform(starting_after = nil) # Make sure we don't email everyone Subscription.skip_callback(:save, :before, :check_for_upgrade) # Import all Stripe subscriptions stripe_subscriptions = Stripe::Subscription.list(status: 'all', limit: 100, starting_after: starting_after) stripe_subscriptions.each do |stripe_subscription| import_subscription(stripe_subscription) end # All done, enable the mailer Subscription.set_callback(:save, :before, :check_for_upgrade) Tang::ImportSubscriptionsJob.perform_now(stripe_subscriptions.data.last.id) if stripe_subscriptions.has_more end def import_subscription(stripe_subscription) customer = Tang.customer_class.find_by(stripe_id: stripe_subscription.customer) plan = Plan.find_by(stripe_id: stripe_subscription.plan.id) if customer.present? && plan.present? subscription = Subscription.from_stripe(stripe_subscription, customer, plan) # Handle removed discounts subscription.update(coupon: nil, coupon_start: nil) if stripe_subscription.discount.nil? end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
tang-0.1.0 | app/jobs/tang/import_subscriptions_job.rb |
tang-0.0.9 | app/jobs/tang/import_subscriptions_job.rb |
tang-0.0.8 | app/jobs/tang/import_subscriptions_job.rb |