Class: Decidim::Surveys::Admin::UpdateSurvey

Inherits:
Forms::Admin::UpdateQuestionnaire
  • Object
show all
Defined in:
app/commands/decidim/surveys/admin/update_survey.rb

Overview

This command is executed when the user changes a Survey Questionnaire from the admin panel.

Instance Method Summary collapse

Constructor Details

#initialize(form, survey, user) ⇒ UpdateSurvey

Initializes a UpdateSurvey Command.

form - The form from which to get the data. survey questionnaire - The current instance of the questionnaire to be updated.



13
14
15
16
17
18
# File 'app/commands/decidim/surveys/admin/update_survey.rb', line 13

def initialize(form, survey, user)
  @form = form
  @survey = survey
  @questionnaire = survey.questionnaire
  @user = user
end

Instance Method Details

#callObject

Updates the survey questionnaire if valid.

Broadcasts :ok if successful, :invalid otherwise.



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/commands/decidim/surveys/admin/update_survey.rb', line 23

def call
  return broadcast(:invalid) if @form.invalid?

  Decidim.traceability.perform_action!("update", @survey, @user) do
    transaction do
      update_questionnaire_attributes
    end
  rescue ActiveRecord::RecordInvalid
    broadcast(:invalid)
  end

  broadcast(:ok)
end