mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 21:29:38 +02:00
47 lines
1.2 KiB
Ruby
47 lines
1.2 KiB
Ruby
|
class Settings::SelfHostingController < ApplicationController
|
||
|
before_action :verify_self_hosting_enabled
|
||
|
|
||
|
def edit
|
||
|
end
|
||
|
|
||
|
def update
|
||
|
if all_updates_valid?
|
||
|
self_hosting_params.keys.each do |key|
|
||
|
Setting.send("#{key}=", self_hosting_params[key].strip)
|
||
|
end
|
||
|
|
||
|
redirect_to edit_settings_self_hosting_path, notice: t(".success")
|
||
|
else
|
||
|
flash.now[:error] = @errors.first.message
|
||
|
render :edit, status: :unprocessable_entity
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
def all_updates_valid?
|
||
|
@errors = ActiveModel::Errors.new(Setting)
|
||
|
self_hosting_params.keys.each do |key|
|
||
|
setting = Setting.new(var: key)
|
||
|
setting.value = self_hosting_params[key].strip
|
||
|
|
||
|
unless setting.valid?
|
||
|
@errors.merge!(setting.errors)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if self_hosting_params[:upgrades_mode] == "auto" && self_hosting_params[:render_deploy_hook].blank?
|
||
|
@errors.add(:render_deploy_hook, t("settings.self_hosting.update.render_deploy_hook_error"))
|
||
|
end
|
||
|
|
||
|
@errors.empty?
|
||
|
end
|
||
|
|
||
|
def self_hosting_params
|
||
|
params.require(:setting).permit(:render_deploy_hook, :upgrades_mode, :upgrades_target)
|
||
|
end
|
||
|
|
||
|
def verify_self_hosting_enabled
|
||
|
head :not_found unless self_hosted?
|
||
|
end
|
||
|
end
|