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

		before_filter :authenticate_nonprofit_user!

    def edit
      @nonprofit = current_nonprofit
    end

    # POST /nonprofits/:nonprofit_id/card
    def create
      render(
        JsonResp.new(params) do |d|
          requires(:nonprofit_id).as_int
          requires(:card).nested do
            requires(:name, :stripe_card_token, :stripe_card_id).as_string
            requires(:holder_id).as_int
            requires(:holder_type).one_of('Supporter', 'Nonprofit')
          end
        end.when_valid do |d|
          UpdateBillingSubscriptions.activate_from_trial(d[:nonprofit_id])
          InsertCard.with_stripe(d[:card])
        end
      )
    end

  end
end