* Remove duplicate method calls * DRY up duplicated code * Address code smells in concerns * Update based on PR feedback
27 lines
804 B
Ruby
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
|