Sha256: 6dcca1c8a21edf751975becb81d39fbe86b7559ed48426c677776a96dcbe60ed
Contents?: true
Size: 1.49 KB
Versions: 7
Compression:
Stored size: 1.49 KB
Contents
# frozen_string_literal: true module Decidim class FollowsController < Decidim::ApplicationController include FormFactory before_action :authenticate_user! helper_method :resource, :button_cell, :button_cell_mobile def destroy @form = form(Decidim::FollowForm).from_params(params) enforce_permission_to :delete, :follow, follow: @form.follow DeleteFollow.call(@form) do on(:ok) do render :update_button end on(:invalid) do render json: { error: I18n.t("follows.destroy.error", scope: "decidim") }, status: :unprocessable_entity end end end def create @form = form(Decidim::FollowForm).from_params(params) enforce_permission_to :create, :follow CreateFollow.call(@form) do on(:ok) do render :update_button end on(:invalid) do render json: { error: I18n.t("follows.create.error", scope: "decidim") }, status: :unprocessable_entity end end end def resource @resource ||= GlobalID::Locator.locate_signed( params[:follow][:followable_gid] ) end def button_options params.require(:follow).permit(:button_classes).to_h.symbolize_keys end def button_cell_mobile @button_cell_mobile ||= cell("decidim/follow_button", resource, **button_options.merge(mobile: true)) end def button_cell @button_cell ||= cell("decidim/follow_button", resource, **button_options) end end end
Version data entries
7 entries across 7 versions & 1 rubygems