Files
openfoodnetwork/app/controllers/admin/stripe_connect_settings_controller.rb
Luis Ramos e52937c113 Use rubocop auto correct to add frozen string literal to all files
This is an unsafe auto corection, we will need to trust our build here
2021-06-17 23:07:26 +01:00

50 lines
1.4 KiB
Ruby

# frozen_string_literal: true
# This controller is used by super admin users to update the settings the app is using
module Admin
class StripeConnectSettingsController < Spree::Admin::BaseController
StripeConnectSettings = Struct.new(:stripe_connect_enabled)
before_action :load_settings, only: [:edit]
def edit
return @stripe_account = { status: :empty_api_key_error_html } if Stripe.api_key.blank?
attrs = %i[id business_name charges_enabled]
@obfuscated_secret_key = obfuscated_secret_key
@stripe_account = Stripe::Account.retrieve.to_hash.slice(*attrs).merge(status: :ok)
rescue Stripe::AuthenticationError
@stripe_account = { status: :auth_fail_error }
end
def update
Spree::Config.set(settings_params.to_h)
resource = t('admin.controllers.stripe_connect_settings.resource')
flash[:success] = t(:successfully_updated, resource: resource)
redirect_to_edit
end
private
def load_settings
@settings = StripeConnectSettings.new(Spree::Config[:stripe_connect_enabled])
end
def redirect_to_edit
redirect_to main_app.edit_admin_stripe_connect_settings_path
end
def obfuscated_secret_key
key = Stripe.api_key
key.first(8) + "****" + key.last(4)
end
def settings_params
params.require(:settings).permit(
:stripe_connect_enabled,
)
end
end
end