Skip to Content Skip to Search
Methods
E
I
M
N
P
S

Instance Public methods

event()

# File engines/api/app/jobs/api/async_incomplete_plan_provisioner_job.rb, line 67
def event
  @event ||= Stripe::Event.retrieve(@event_id, {stripe_account: @account_id})
end

incomplete_to_active?()

# File engines/api/app/jobs/api/async_incomplete_plan_provisioner_job.rb, line 28
def incomplete_to_active?
  previous_status == "incomplete" && %w[active trialing].include?(new_status)
end

incomplete_to_expired?()

# File engines/api/app/jobs/api/async_incomplete_plan_provisioner_job.rb, line 32
def incomplete_to_expired?
  previous_status == "incomplete" && new_status == "incomplete_expired"
end

member()

# File engines/api/app/jobs/api/async_incomplete_plan_provisioner_job.rb, line 59
def member
  ms_subscription.member
end

missing_planning?()

# File engines/api/app/jobs/api/async_incomplete_plan_provisioner_job.rb, line 63
def missing_planning?
  @missing_planning ||= !member.plans.exists?(ms_subscription.plan_id)
end

ms_plan()

# File engines/api/app/jobs/api/async_incomplete_plan_provisioner_job.rb, line 55
def ms_plan
  DB::Plan.find_by(payment_gateway_id: stripe_subscription.plan.id)
end

ms_subscription()

# File engines/api/app/jobs/api/async_incomplete_plan_provisioner_job.rb, line 48
def ms_subscription
  @ms_subscription ||= DB::Subscription.find_by(
    payment_gateway_id: stripe_subscription.id,
    plan_id: ms_plan&.id
  )
end

new_status()

# File engines/api/app/jobs/api/async_incomplete_plan_provisioner_job.rb, line 44
def new_status
  stripe_subscription.status
end

perform(event_id, account_id)

# File engines/api/app/jobs/api/async_incomplete_plan_provisioner_job.rb, line 5
def perform(event_id, account_id)
  @event_id = event_id
  @account_id = account_id

  return unless ms_subscription

  if incomplete_to_active? && missing_planning?
    # Provision plan as async authorization
    # might have been performed without the front-end acknowledgement
    purchaser = Action::PlanPurchaser.new({
      plan: ms_subscription.plan,
      member: member,
      site: member.site,
      order: Action::Billing::Order.new(ms_order: ms_subscription)
    })

    purchaser.after_successful_purchase
  elsif incomplete_to_expired?
    ms_subscription.destroy
  end
rescue Stripe::InvalidRequestError
end

previous_status()

# File engines/api/app/jobs/api/async_incomplete_plan_provisioner_job.rb, line 40
def previous_status
  event.data.previous_attributes.status
end

stripe_subscription()

# File engines/api/app/jobs/api/async_incomplete_plan_provisioner_job.rb, line 36
def stripe_subscription
  event.data.object
end