class SharedSettings::UI::Actions::Setting

Public Class Methods

route_regex() click to toggle source
# File lib/shared_settings/ui/actions/setting.rb, line 7
def self.route_regex
  %r{\A/api/settings(/(?<setting_name>\w*))?(/destroy)?\Z}
end

Public Instance Methods

delete() click to toggle source
# File lib/shared_settings/ui/actions/setting.rb, line 39
def delete
  SharedSettings.delete(@params['setting_name'])

  [200, headers, ['']]
end
get() click to toggle source
# File lib/shared_settings/ui/actions/setting.rb, line 11
def get
  all_settings_as_json = JSON.dump(SharedSettings.all.map(&:to_h))

  [200, headers, [all_settings_as_json]]
end
post() click to toggle source
# File lib/shared_settings/ui/actions/setting.rb, line 17
def post
  create_or_update_setting(
    @params['name'],
    @params['type'],
    @params['value'],
    @params['encrypted']
  )

  [201, headers, ['']]
end
put() click to toggle source
# File lib/shared_settings/ui/actions/setting.rb, line 28
def put
  create_or_update_setting(
    @params['setting_name'],
    @params['type'],
    @params['value'],
    @params['encrypted']
  )

  [201, headers, ['']]
end

Private Instance Methods

create_or_update_setting(name, type, value, encrypted) click to toggle source
# File lib/shared_settings/ui/actions/setting.rb, line 47
def create_or_update_setting(name, type, value, encrypted)
  SharedSettings.put(
    name,
    SharedSettings::Setting.deserialize_value(value, type),
    encrypt: !!encrypted
  )
end