Class: Decidim::Surveys::Admin::PublishResponsesController

Inherits:
ApplicationController show all
Includes:
Forms::Admin::Concerns::HasQuestionnaireResponsesUrlHelper
Defined in:
decidim-surveys/app/controllers/decidim/surveys/admin/publish_responses_controller.rb

Overview

This controller allows the user to see which questions’ responses can be published, and publish or unpublish them

Instance Method Summary collapse

Methods included from Forms::Admin::Concerns::HasQuestionnaireResponsesUrlHelper

included, #questionnaire_export_response_url, #questionnaire_participant_responses_url, #questionnaire_participants_url

Methods inherited from Admin::Components::BaseController

#current_component, #current_participatory_space, #parent_path, #permission_class_chain, #permission_scope, #permissions_context, #set_component_breadcrumb_item, #skip_manage_component_permission

Methods included from RegistersPermissions

register_permissions

Methods inherited from Admin::ApplicationController

#permission_class_chain, #permission_scope, #user_has_no_permission_path, #user_not_authorized_path

Methods included from Headers::HttpCachingDisabler

#disable_http_caching

Methods included from TranslatableAttributes

#attachment?, #default_locale?

Methods included from NeedsSnippets

#snippets

Methods included from NeedsOrganization

enhance_controller, extended, included

Instance Method Details

#destroyObject



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'decidim-surveys/app/controllers/decidim/surveys/admin/publish_responses_controller.rb', line 32

def destroy
  enforce_permission_to(:destroy, :questionnaire_publish_responses, survey:)

  Decidim::Surveys::UnpublishResponses.call(params[:id], current_user) do
    on(:ok) do
      render json: {}
    end

    on(:invalid) do
      render json: {}, status: :unprocessable_entity
    end
  end
end

#indexObject



12
13
14
15
16
# File 'decidim-surveys/app/controllers/decidim/surveys/admin/publish_responses_controller.rb', line 12

def index
  enforce_permission_to(:index, :questionnaire_publish_responses, survey:)

  @survey ||= survey
end

#questionnaireObject



46
47
48
# File 'decidim-surveys/app/controllers/decidim/surveys/admin/publish_responses_controller.rb', line 46

def questionnaire
  @questionnaire ||= Decidim::Forms::Questionnaire.find_by(questionnaire_for:)
end

#questionnaire_forObject



50
51
52
# File 'decidim-surveys/app/controllers/decidim/surveys/admin/publish_responses_controller.rb', line 50

def questionnaire_for
  survey
end

#questionnaire_urlObject



54
55
56
# File 'decidim-surveys/app/controllers/decidim/surveys/admin/publish_responses_controller.rb', line 54

def questionnaire_url
  Decidim::EngineRouter.admin_proxy(questionnaire_for.component).edit_questions_survey_path(questionnaire_for)
end

#updateObject



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'decidim-surveys/app/controllers/decidim/surveys/admin/publish_responses_controller.rb', line 18

def update
  enforce_permission_to(:update, :questionnaire_publish_responses, survey:)

  Decidim::Surveys::PublishResponses.call(params[:id], current_user) do
    on(:ok) do
      render json: {}
    end

    on(:invalid) do
      render json: {}, status: :unprocessable_entity
    end
  end
end