docbrown/app/controllers/concerns/settings_params.rb
Jacob Herrington 5afb4d9a24
[15-Minute Fix] Refactor code smells (#13347)
* Remove duplicate method calls

* DRY up duplicated code

* Address code smells in concerns

* Update based on PR feedback
2021-04-21 14:52:32 -05:00

27 lines
804 B
Ruby

# Helper method for controllers interacting with SiteConfig
module SettingsParams
SPECIAL_PARAMS_TO_ADD = %w[
credit_prices_in_cents
email_addresses
meta_keywords
].freeze
def settings_params
has_emails = params.dig(:site_config, :email_addresses).present?
params[:site_config][:email_addresses][:default] = ApplicationConfig["DEFAULT_EMAIL"] if has_emails
params.require(:site_config)&.permit(
settings_keys.map(&:to_sym),
social_media_handles: SiteConfig.social_media_handles.keys,
email_addresses: SiteConfig.email_addresses.keys,
meta_keywords: SiteConfig.meta_keywords.keys,
credit_prices_in_cents: SiteConfig.credit_prices_in_cents.keys,
)
end
private
def settings_keys
SiteConfig.keys + SPECIAL_PARAMS_TO_ADD
end
end