houdini/app/controllers/email_settings_controller.rb

27 lines
1 KiB
Ruby

# frozen_string_literal: true
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
class EmailSettingsController < ApplicationController
include Controllers::Nonprofit::Current
include Controllers::Nonprofit::Authorization
before_action :authenticate_nonprofit_user!
def index
user = current_role?(:super_admin) ? User.find(params[:user_id]) : current_user
es = QueryEmailSettings.fetch(params[:nonprofit_id], user.id)
render json: es
end
# Create or update for a given user and nonprofit
# post /nonprofits/:nonprofit_id/users/:user_id/email_settings for current_user
def create
user = current_role?(:super_admin) ? User.find(params[:user_id]) : current_user
render json: UpdateEmailSettings.save(params[:nonprofit_id], user.id, email_settings_params)
end
private
def email_settings_params
params.require(:email_settings).permit(:notify_payments, :notify_campaigns, :notify_events, :notify_payouts, :notify_recurring_donations)
end
end