diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb index 4676f60de..072942a84 100644 --- a/app/controllers/api/v1/accounts_controller.rb +++ b/app/controllers/api/v1/accounts_controller.rb @@ -26,7 +26,7 @@ class Api::V1::AccountsController < Api::BaseController end def mute - MuteService.new.call(current_user.account, @account, notifications: params[:notifications]) + MuteService.new.call(current_user.account, @account, **params.permit(:notifications).to_hash.symbolize_keys) render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships end diff --git a/app/services/mute_service.rb b/app/services/mute_service.rb index 0beda8094..bd08125e6 100644 --- a/app/services/mute_service.rb +++ b/app/services/mute_service.rb @@ -1,14 +1,10 @@ # frozen_string_literal: true class MuteService < BaseService - def call(account, target_account, notifications: nil) + def call(account, target_account, **opts) return if account.id == target_account.id FeedManager.instance.clear_from_timeline(account, target_account) - # This unwieldy approach avoids duplicating the default value here - # and in mute!. - opts = {} - opts[:notifications] = notifications unless notifications.nil? - mute = account.mute!(target_account, **opts) + mute = account.mute!(target_account, **opts.slice(:notifications)) BlockWorker.perform_async(account.id, target_account.id) mute end