Sha256: 9619783c2430bbc265b4b549da1b87153d0c8c76585f8115fdbe647e3472a1bd

Contents?: true

Size: 838 Bytes

Versions: 2

Compression:

Stored size: 838 Bytes

Contents

module Susply
  class RenewsSubscription
    def self.call(owner)
      active_subscription = owner.active_subscription
      if active_subscription && active_subscription.expired?
        Susply::CreatePayment.call(active_subscription, "plan_renovation")
        calculate_renewed_subscription(active_subscription)
      else
        nil
      end
    end

    private
    def self.calculate_renewed_subscription(subscription)
      new_period_start = subscription.current_period_end
      new_period_end = Susply::Calculations.
        end_period_calculation(new_period_start, subscription.plan.interval)
      subscription.quantity = subscription.quantity + 1
      subscription.current_period_start = new_period_start
      subscription.current_period_end = new_period_end
      subscription.save
      subscription
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
susply-1.0.0 app/services/susply/renews_subscription.rb
susply-0.0.2 app/services/susply/renews_subscription.rb