class Wco::SubscriptionsController

def create

#
# A stripe subscription is currently single-item only.
#
def create
  @subscription = Wco::Subscription.new params[:subscription].permit!
  authorize! :create, @subscription
  @subscription.leadset_id = Leadset.where({ customer_id: params[:subscription][:customer_id] }).first&.id
  @subscription.price   = Wco::Price.find_by price_id: params[:subscription][:price_id]
  @subscription.product = @subscription.price.product
  if params[:is_stripe]
    payment_methods = Stripe::Customer.list_payment_methods( params[:subscription][:customer_id] ).data
    params = {
      customer: params[:subscription][:customer_id],
      default_payment_method: payment_methods[0][:id],
      items: [
        { price:    params[:subscription][:price_id],
          quantity: params[:subscription][:quantity],
        },
      ],
    }
    @stripe_subscription = Stripe::Subscription.create( params )
    flash_notice @stripe_subscription
  end
  flag = @subscription.save
  if flag
    flash_notice @subscription
    redirect_to action: :show, id: @subscription.id
  else
    flash_alert @subscription
    redirect_to action: :new
  end
end