Class: AdminSettingUpdater

Inherits:
Object
  • Object
show all
Includes:
DefaultErrorContainer
Defined in:
app/my_lib/admin_setting_updater.rb

Overview

Handles updating of admin settings with validation and type conversion

Defined Under Namespace

Classes: ValidationError

Constant Summary collapse

SETTING_TYPE_CONVERTERS =
{
  integer: ->(val) { val.to_i },
  float: ->(val) { val.to_f },
  boolean: ->(val) { val == 'true' },
  array: ->(val) do
    return val if val.is_a?(Array)

    val.to_s.split(',').map(&:strip)
  end,
  string: ->(val) { val.to_s },
}.freeze

Instance Method Summary collapse

Methods included from DefaultErrorContainer

#error, #error_message_simple, #merge_errors

Constructor Details

#initializeAdminSettingUpdater

Returns a new instance of AdminSettingUpdater.



22
23
24
# File 'app/my_lib/admin_setting_updater.rb', line 22

def initialize
  @error_message = ''
end

Instance Method Details

#update(params) ⇒ ServiceResult

Updates admin settings with validation

Parameters:

  • params (Hash)

    settings to update

Returns:

  • (ServiceResult)

    Result object containing success/failure info



29
30
31
32
33
34
35
36
37
# File 'app/my_lib/admin_setting_updater.rb', line 29

def update(params)
  return handle_empty_params if params.blank?

  validate_and_update_settings(params)
rescue ValidationError => e
  handle_error(e.message)
rescue StandardError => e
  handle_unexpected_error(e)
end