# frozen_string_literal: true class Settings::KeywordMutesController < ApplicationController layout 'admin' before_action :authenticate_user! before_action :set_account before_action :load_keyword_mute, only: [:edit, :update, :destroy] def index @keyword_mutes = paginated_keyword_mutes_for_account end def new @keyword_mute = keyword_mutes_for_account.build end def create @keyword_mute = keyword_mutes_for_account.create(keyword_mute_params) if @keyword_mute.persisted? redirect_to settings_keyword_mutes_path, notice: I18n.t('generic.changes_saved_msg') else render :new end end def update if @keyword_mute.update(keyword_mute_params) redirect_to settings_keyword_mutes_path, notice: I18n.t('generic.changes_saved_msg') else render :new end end def destroy if @keyword_mute.destroy redirect_to settings_keyword_mutes_path, notice: I18n.t('generic.changes_saved_msg') else # FIXME redirect_to settings_keyword_mutes_path, notice: "huh that didn't work right" end end def destroy_all keyword_mutes_for_account.delete_all redirect_to settings_keyword_mutes_path, notice: I18n.t('generic.changes_saved_msg') end private def set_account @account = current_user.account end def keyword_mutes_for_account Glitch::KeywordMute.where(account: @account) end def load_keyword_mute @keyword_mute = keyword_mutes_for_account.find(params[:id]) end def keyword_mute_params params.require(:keyword_mute).permit(:keyword, :whole_word) end def paginated_keyword_mutes_for_account keyword_mutes_for_account.order(:keyword).page params[:page] end end