Class: Decidim::Proposals::ProposalVotesController

Inherits:
ApplicationController show all
Includes:
ProposalVotesHelper
Defined in:
decidim-proposals/app/controllers/decidim/proposals/proposal_votes_controller.rb

Overview

Exposes the proposal vote resource so users can vote proposals.

Instance Method Summary collapse

Methods included from ProposalVotesHelper

#remaining_votes_count_for, #vote_button_classes, #vote_limit_enabled?, #votes_count_classes

Instance Method Details

#createObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'decidim-proposals/app/controllers/decidim/proposals/proposal_votes_controller.rb', line 13

def create
  authorize! :vote, proposal
  @from_proposals_list = params[:from_proposals_list] == "true"

  VoteProposal.call(proposal, current_user) do
    on(:ok) do
      proposal.reload
      render :update_buttons_and_counters
    end

    on(:invalid) do
      render json: { error: I18n.t("proposal_votes.create.error", scope: "decidim.proposals") }, status: 422
    end
  end
end

#destroyObject



29
30
31
32
33
34
35
36
37
38
39
# File 'decidim-proposals/app/controllers/decidim/proposals/proposal_votes_controller.rb', line 29

def destroy
  authorize! :unvote, proposal
  @from_proposals_list = params[:from_proposals_list] == "true"

  UnvoteProposal.call(proposal, current_user) do
    on(:ok) do
      proposal.reload
      render :update_buttons_and_counters
    end
  end
end