# frozen_string_literal: true # Actualiza la relaciĆ³n entre un sitio y una instancia class InstanceModerationsController < ApplicationController include ModerationConcern InstanceModeration.events.each do |event| define_method(event) do authorize instance_moderation instance_moderation.public_send(:"#{event}!") if instance_moderation.public_send(:"may_#{event}?") flash[:success] = I18n.t("instance_moderations.#{event}.success") rescue Exception => e ExceptionNotifier.notify_exception(e, data: { site: site.name, params: params.permit!.to_h }) flash[:error] = I18n.t("instance_moderations.#{event}.error") ensure redirect_to_moderation_queue! end end def action_on_several instance_moderations = site.instance_moderations.where(id: params[:instance_moderation]) authorize instance_moderations action = params[:instance_moderation_action].to_sym method = :"#{action}_all!" redirect_to_moderation_queue! return unless InstanceModeration.events.include? action InstanceModeration.transaction do message = instance_moderations.public_send(method) ? :success : :error flash[:message] = I18n.t("instance_moderations.action_on_several.#{message}") end end private # @return [InstanceModeration] def instance_moderation @instance_moderation ||= site.instance_moderations.find(params[:instance_moderation_id]) end end