houdini/app/controllers/nonprofits/custom_field_joins_controller.rb

41 lines
1.2 KiB
Ruby

# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
module Nonprofits
class CustomFieldJoinsController < ApplicationController
include Controllers::NonprofitHelper
before_action :authenticate_nonprofit_user!
def index
@custom_field_joins = current_nonprofit
.supporters.find(params[:supporter_id])
.custom_field_joins
.order('created_at DESC')
end
# used for modify a single supporter's custom fields or a group of
# selected supporters' CFs or all supporters' CFs
def modify
if params[:custom_fields].blank? || params[:custom_fields].empty?
render json: {}
return
end
if params[:selecting_all]
supporter_ids = QuerySupporters.full_filter_expr(current_nonprofit.id, params[:query]).select("supporters.id").execute.map{|h| h['id']}
else
supporter_ids = params[:supporter_ids]. map(&:to_i)
end
render InsertCustomFieldJoins.in_bulk(current_nonprofit.id, supporter_ids, params[:custom_fields])
end
def destroy
supporter = current_nonprofit.supporters.find(params[:supporter_id])
supporter.custom_field_joins.find(params[:id]).destroy
render json: {}, status: :ok
end
end
end