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