Class: Decidim::DecidimAwesome::Admin::UpdateAwesomeAuthorizationProperties

Inherits:
Command
  • Object
show all
Defined in:
app/commands/decidim/decidim_awesome/admin/update_awesome_authorization_properties.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(form) ⇒ UpdateAwesomeAuthorizationProperties

Public: Initializes the command.

form - A AwesomeAuthorizationPropertiesForm form



10
11
12
# File 'app/commands/decidim/decidim_awesome/admin/update_awesome_authorization_properties.rb', line 10

def initialize(form)
  @form = form
end

Instance Attribute Details

#formObject (readonly)

Returns the value of attribute form.



14
15
16
# File 'app/commands/decidim/decidim_awesome/admin/update_awesome_authorization_properties.rb', line 14

def form
  @form
end

Instance Method Details

#callObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/commands/decidim/decidim_awesome/admin/update_awesome_authorization_properties.rb', line 16

def call
  return broadcast(:invalid, form.errors.full_messages.join("; ")) if form.invalid?

  config = Decidim::DecidimAwesome::AwesomeConfig.find_or_initialize_by(var: :awesome_authorization_handler, organization: form.current_organization)

  if form.empty?
    config.destroy! if config.persisted?
  else
    config.value = {
      name: form.name,
      explanation: form.explanation
    }
    config.save!
  end

  broadcast(:ok)
rescue StandardError => e
  broadcast(:invalid, e.message)
end