# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
class BillingSubscriptionsController < ApplicationController
	include NonprofitHelper

	before_filter :authenticate_nonprofit_admin!

  def create_trial
    render JsonResp.new(params){|params|
      requires(:nonprofit_id).as_int
      requires(:stripe_plan_id).as_string
    }.when_valid{|params| 
      InsertBillingSubscriptions.trial(params[:nonprofit_id], params[:stripe_plan_id])
    }
  end

	def create
    @nonprofit ||= Nonprofit.find(params[:nonprofit_id])
		@subscription = BillingSubscription.create_with_stripe(@nonprofit, params[:billing_subscription])
		json_saved(@subscription, "Success! You are subscribed to #{Settings.general.name}.")
	end

  # post /nonprofits/:nonprofit_id/billing_subscription/cancel
	def cancel
		@result = CancelBillingSubscription.with_stripe(@nonprofit)
		flash[:notice] = "Your subscription has been cancelled. We'll email you soon with exports."
    redirect_to root_url
	end

  # get nonprofits/:nonprofit_id/billing_subscription/cancellation
  def cancellation
    @nonprofit = current_nonprofit
    @billing_plan = @nonprofit.billing_plan
    @billing_subscription = @nonprofit.billing_subscription
  end
end