about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/api/v1/accounts_controller.rb2
-rw-r--r--app/services/mute_service.rb8
2 files changed, 3 insertions, 7 deletions
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