Class: Decidim::Elections::Admin::UpdateQuestionStatus

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

Instance Method Summary collapse

Constructor Details

#initialize(action, question) ⇒ UpdateQuestionStatus

Returns a new instance of UpdateQuestionStatus.



7
8
9
10
# File 'app/commands/decidim/elections/admin/update_question_status.rb', line 7

def initialize(action, question)
  @action = action.to_sym
  @question = question
end

Instance Method Details

#callObject



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/commands/decidim/elections/admin/update_question_status.rb', line 12

def call
  return broadcast(:invalid) unless action.in?([:enable_voting, :publish_results])

  transaction do
    update_status
    question.save!
  end

  broadcast(:ok, question)
rescue StandardError => e
  Rails.logger.error "#{e.class.name}: #{e.message}"
  broadcast(:invalid)
end