about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSurinna Curtis <ekiru.0@gmail.com>2017-09-13 18:32:10 -0500
committerSurinna Curtis <ekiru.0@gmail.com>2017-09-13 21:47:30 -0500
commitf9d7b8a94f4a89d76081a6265103f6d7439be250 (patch)
tree6e91787f0181b1b7ec3e658f2ee35710e2071aaa
parent211f0a951375a33ed4278eef030e76a6bde9c396 (diff)
Refactor handling of default params for muting to make code cleaner
-rw-r--r--app/controllers/api/v1/accounts_controller.rb2
-rw-r--r--app/models/concerns/account_interactions.rb3
-rw-r--r--app/services/mute_service.rb4
3 files changed, 5 insertions, 4 deletions
diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb
index de2cb0d97..3e9ac1025 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, **params.permit(:notifications).to_hash.symbolize_keys)
+    MuteService.new.call(current_user.account, @account, notifications: params(:notifications))
     render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships
   end
 
diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb
index 6f69ce1d4..0afdebf89 100644
--- a/app/models/concerns/account_interactions.rb
+++ b/app/models/concerns/account_interactions.rb
@@ -74,7 +74,8 @@ module AccountInteractions
     block_relationships.find_or_create_by!(target_account: other_account)
   end
 
-  def mute!(other_account, notifications: true)
+  def mute!(other_account, notifications: nil)
+    notifications = true if notifications.nil?
     mute = mute_relationships.create_with(hide_notifications: notifications).find_or_create_by!(target_account: other_account)
     # When toggling a mute between hiding and allowing notifications, the mute will already exist, so the find_or_create_by! call will return the existing Mute without updating the hide_notifications attribute. Therefore, we check that hide_notifications? is what we want and set it if it isn't.
     if mute.hide_notifications? != notifications
diff --git a/app/services/mute_service.rb b/app/services/mute_service.rb
index fc63f83e9..56cbebd5d 100644
--- a/app/services/mute_service.rb
+++ b/app/services/mute_service.rb
@@ -1,9 +1,9 @@
 # frozen_string_literal: true
 
 class MuteService < BaseService
-  def call(account, target_account, **opts)
+  def call(account, target_account, notifications: nil)
     return if account.id == target_account.id
     FeedManager.instance.clear_from_timeline(account, target_account)
-    account.mute!(target_account, **opts.slice(:notifications))
+    account.mute!(target_account, notifications: notifications)
   end
 end