Sha256: ed1097b14fdbf58c8e2f43115acfe7fe39d95236822bfb93d94142f9ac42cd8c
Contents?: true
Size: 1.68 KB
Versions: 1
Compression:
Stored size: 1.68 KB
Contents
# frozen_string_literal: true module Decidim module Posts class ReactionsController < Decidim::Components::BaseController before_action :authenticate_user! def create enforce_permission_to(:create, :reaction, resource:) reaction_type_id = params[:reaction_type_id] user_group_id = params[:user_group_id] AddReactionToResource.call(resource, current_user, user_group_id, reaction_type_id) do on(:ok) do resource.reload render partial: "update_buttons_and_counters", locals: { resource: resource } #render json: { success: true, reaction_type: @reaction.reaction_type }, status: :ok end on(:invalid) do render json: { error: I18n.t("resource_reactions.create.error", scope: "decidim") }, status: :unprocessable_entity #render json: { success: false, errors: @reaction.errors.full_messages }, status: :unprocessable_entity end end end def destroy enforce_permission_to(:withdraw, :reaction, resource:) user_group_id = params[:user_group_id] user_group = user_groups.find(user_group_id) if user_group_id RemoveReactionFromResource.call(resource, current_user, user_group) do on(:ok) do resource.reload render :update_buttons_and_counters end end end private def resource gid_param = params[:id] || params[:resource_id] @resource ||= GlobalID::Locator.locate(GlobalID.parse(gid_param)) end def user_groups Decidim::UserGroups::ManageableUserGroups.for(current_user).verified end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
decidim-posts-1.0.0 | app/controllers/decidim/posts/reactions_controller.rb |