Sha256: e1d37972aa139f2d7b3d366f9d9d63a6dd2a92653e57c9dd39bdc43c198eecb0
Contents?: true
Size: 1.35 KB
Versions: 16
Compression:
Stored size: 1.35 KB
Contents
# frozen_string_literal: true module Decidim module Initiatives # Exposes the initiative vote resource so users can vote initiatives. class InitiativeVotesController < Decidim::Initiatives::ApplicationController include Decidim::Initiatives::NeedsInitiative before_action :authenticate_user! helper InitiativeHelper # POST /initiatives/:initiative_id/initiative_vote def create enforce_permission_to :vote, :initiative, initiative: current_initiative, group_id: params[:group_id] VoteInitiative.call(current_initiative, current_user, params[:group_id]) do on(:ok) do current_initiative.reload render :update_buttons_and_counters end on(:invalid) do render json: { error: I18n.t("initiative_votes.create.error", scope: "decidim.initiatives") }, status: 422 end end end # DELETE /initiatives/:initiative_id/initiative_vote def destroy enforce_permission_to :unvote, :initiative, initiative: current_initiative, group_id: params[:group_id] UnvoteInitiative.call(current_initiative, current_user, params[:group_id]) do on(:ok) do current_initiative.reload render :update_buttons_and_counters end end end end end end
Version data entries
16 entries across 16 versions & 1 rubygems