Sha256: 736c00cf14a780a42f83fbe5059a13ed1f21b455bf4b71fd140f16d8f33f61b3

Contents?: true

Size: 1.19 KB

Versions: 10

Compression:

Stored size: 1.19 KB

Contents

# frozen_string_literal: true

module Decidim
  module Meetings
    module Polls
      class AnswersController < Decidim::Meetings::ApplicationController
        include Decidim::Meetings::PollsResources
        include FormFactory

        helper_method :question

        def admin
          enforce_permission_to(:update, :poll, meeting:)
        end

        def index
          enforce_permission_to(:reply_poll, :meeting, meeting:)
        end

        def create
          enforce_permission_to(:create, :answer, question:)
          @form = form(AnswerForm).from_params(params.merge(question:, current_user:))

          CreateAnswer.call(@form, questionnaire) do
            # Both :ok and :invalid render the same template, because
            # validation errors are displayed in the template
            respond_to do |format|
              format.js
            end
          end
        end

        private

        def question
          @question ||= questionnaire.questions.find(answer_params[:question_id]) if questionnaire
        end

        def answer_params
          params.require(:answer).permit(:question_id, choices: [:body, :answer_option_id])
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
decidim-meetings-0.30.0.rc3 app/controllers/decidim/meetings/polls/answers_controller.rb
decidim-meetings-0.30.0.rc2 app/controllers/decidim/meetings/polls/answers_controller.rb
decidim-meetings-0.30.0.rc1 app/controllers/decidim/meetings/polls/answers_controller.rb
decidim-meetings-0.29.2 app/controllers/decidim/meetings/polls/answers_controller.rb
decidim-meetings-0.29.1 app/controllers/decidim/meetings/polls/answers_controller.rb
decidim-meetings-0.29.0 app/controllers/decidim/meetings/polls/answers_controller.rb
decidim-meetings-0.29.0.rc4 app/controllers/decidim/meetings/polls/answers_controller.rb
decidim-meetings-0.29.0.rc3 app/controllers/decidim/meetings/polls/answers_controller.rb
decidim-meetings-0.29.0.rc2 app/controllers/decidim/meetings/polls/answers_controller.rb
decidim-meetings-0.29.0.rc1 app/controllers/decidim/meetings/polls/answers_controller.rb