houdini/app/controllers/campaigns/campaign_gift_options_controller.rb

52 lines
1.5 KiB
Ruby
Raw Normal View History

# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
module Campaigns; class CampaignGiftOptionsController < ApplicationController
2018-08-08 21:31:42 +00:00
include Controllers::CampaignHelper
2018-11-09 00:29:00 +00:00
before_filter :authenticate_campaign_editor!, only: [:create, :destroy, :update, :update_order, :report]
2018-11-09 00:29:00 +00:00
def report
respond_to do |format|
format.json do
render json: QueryCampaignGifts.report_metrics(current_campaign.id)
end
end
end
2018-11-09 00:29:00 +00:00
def index
@gift_options = current_campaign.campaign_gift_options.order('"order", amount_recurring, amount_one_time')
render json: {data: @gift_options}
end
def show
render json: {data: current_campaign.campaign_gift_options.find(params[:id])}
end
def create
campaign = current_campaign
json_saved CreateCampaignGiftOption.create(campaign, params[:campaign_gift_option]),
'Gift option successfully created!'
end
def update
@campaign = current_campaign
gift_option = @campaign.campaign_gift_options.find params[:id]
json_saved UpdateCampaignGiftOption.update(gift_option, params[:campaign_gift_option]), 'Successfully updated'
end
# put /nonprofits/:nonprofit_id/campaigns/:campaign_id/campaign_gift_options/update_order
# Pass in {data: [{id: 1, order: 1}]}
def update_order
updated_gift_options = UpdateOrder.with_data('campaign_gift_options', params[:data])
render json: updated_gift_options
end
def destroy
@campaign = current_campaign
render_json { DeleteCampaignGiftOption.delete(@campaign, params[:id])}
end
end; end