mirror of
https://github.com/glitch-soc/mastodon.git
synced 2025-02-23 11:03:50 -05:00
Refactor handling of default params for muting to make code cleaner
This commit is contained in:
parent
d17255c0e0
commit
da85bfc252
@ -26,7 +26,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
|
||||
|
||||
|
@ -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
|
||||
|
@ -1,10 +1,10 @@
|
||||
# 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)
|
||||
mute = account.mute!(target_account, **opts.slice(:notifications))
|
||||
mute = account.mute!(target_account, notifications: notifications)
|
||||
BlockWorker.perform_async(account.id, target_account.id)
|
||||
mute
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user