houdini/app/controllers/nonprofits/recurring_donations_controller.rb
Bradley M. Kuhn 6772312ea7 Relicense all .rb files under new project license.
The primary license of the project is changing to:
  AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later

with some specific files to be licensed under the one of two licenses:
   CC0-1.0
   LGPL-3.0-or-later

This commit is one of the many steps to relicense the entire codebase.

Documentation granting permission for this relicensing (from all past
contributors who hold copyrights) is on file with Software Freedom
Conservancy, Inc.
2018-03-25 15:10:40 -04:00

94 lines
2.6 KiB
Ruby

# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
module Nonprofits
class RecurringDonationsController < ApplicationController
include NonprofitHelper
before_filter :authenticate_nonprofit_user!, except: [:create]
# get /nonprofits/:nonprofit_id/recurring_donations
def index
@nonprofit = current_nonprofit
@panels_layout = true
respond_to do |format|
format.html
format.json do
# set dashboard params include externally active and failed
#TODO move into javascript
params[:active] = true
render json: QueryRecurringDonations.full_list(params[:nonprofit_id], params)
end
end
end
def export
begin
@nonprofit = current_nonprofit
@user = current_user_id
#TODO move into javascript
if params.key?(:active_and_not_failed)
params.delete(:active) if params.key?(:active)
params.delete(:failed) if params.key?(:failed)
end
[:active_and_not_failed, :active, :failed].each do |k|
if (params.key?(k))
params[k] = ActiveRecord::ConnectionAdapters::Column.value_to_boolean(params[k])
end
end
params[:root_url] = root_url
ExportRecurringDonations::initiate_export(@nonprofit.id, params, current_user.id)
rescue => e
e
end
if e.nil?
flash[:notice] = "Your export was successfully initiated and you'll be emailed at #{current_user.email} as soon as it's available. Feel free to use the site in the meantime."
render json: {}, status: :ok
else
render json: e, status: :ok
end
end
def show
@recurring_donation = current_recurring_donation
respond_to {|format| format.json}
end
def destroy
UpdateRecurringDonations.cancel(params[:id], current_user.email)
json_saved current_recurring_donation
end
def update
json_saved UpdateRecurringDonations
.update(current_recurring_donation, params[:recurring_donation])
end
# post /nonprofits/:nonprofit_id/recurring_donations
def create
if params[:recurring_donation][:token]
render_json{ InsertRecurringDonation.with_stripe(params[:recurring_donation]) }
elsif params[:recurring_donation][:direct_debit_detail_id]
render JsonResp.new(params[:recurring_donation]){|data|
requires(:amount).as_int
requires(:supporter_id, :nonprofit_id, :direct_debit_detail_id).as_int
optional(:dedication, :designation).as_string
optional(:campaign_id, :event_id).as_int
}.when_valid{|data|
InsertRecurringDonation.with_sepa(data)
}
else
render json: {}, status: 422
end
end
private
def current_recurring_donation
@recurring_donation ||= current_nonprofit.recurring_donations.find params[:id]
end
end
end