diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb index ec3abfbf5..de2cb0d97 100644 --- a/app/controllers/api/v1/accounts_controller.rb +++ b/app/controllers/api/v1/accounts_controller.rb @@ -33,7 +33,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 d8a95f94b..fc63f83e9 100644 --- a/app/services/mute_service.rb +++ b/app/services/mute_service.rb @@ -1,13 +1,9 @@ # 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? - account.mute!(target_account, **opts) + account.mute!(target_account, **opts.slice(:notifications)) end end