# frozen_string_literal: true class Settings::KeywordMutesController < Settings::BaseController 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? Glitch::ApplyKeywordMutesWorker.perform_async(current_account.id) 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) Glitch::ApplyKeywordMutesWorker.perform_async(current_account.id) redirect_to settings_keyword_mutes_path, notice: I18n.t('generic.changes_saved_msg') else render :edit end end def destroy @keyword_mute.destroy! Glitch::ApplyKeywordMutesWorker.perform_async(current_account.id) redirect_to settings_keyword_mutes_path, notice: I18n.t('generic.changes_saved_msg') end def destroy_all keyword_mutes_for_account.delete_all Glitch::ApplyKeywordMutesWorker.perform_async(current_account.id) redirect_to settings_keyword_mutes_path, notice: I18n.t('generic.changes_saved_msg') end private def keyword_mutes_for_account Glitch::KeywordMute.where(account: current_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, :apply_to_mentions) end def paginated_keyword_mutes_for_account keyword_mutes_for_account.order(:keyword).page params[:page] end end