Refactor handling of default params for muting to make code cleaner
This commit is contained in:
		
							parent
							
								
									211f0a9513
								
							
						
					
					
						commit
						f9d7b8a94f
					
				@ -33,7 +33,7 @@ class Api::V1::AccountsController < Api::BaseController
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def mute
 | 
					  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
 | 
					    render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -74,7 +74,8 @@ module AccountInteractions
 | 
				
			|||||||
    block_relationships.find_or_create_by!(target_account: other_account)
 | 
					    block_relationships.find_or_create_by!(target_account: other_account)
 | 
				
			||||||
  end
 | 
					  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)
 | 
					    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.
 | 
					    # 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
 | 
					    if mute.hide_notifications? != notifications
 | 
				
			||||||
 | 
				
			|||||||
@ -1,9 +1,9 @@
 | 
				
			|||||||
# frozen_string_literal: true
 | 
					# frozen_string_literal: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class MuteService < BaseService
 | 
					class MuteService < BaseService
 | 
				
			||||||
  def call(account, target_account, **opts)
 | 
					  def call(account, target_account, notifications: nil)
 | 
				
			||||||
    return if account.id == target_account.id
 | 
					    return if account.id == target_account.id
 | 
				
			||||||
    FeedManager.instance.clear_from_timeline(account, target_account)
 | 
					    FeedManager.instance.clear_from_timeline(account, target_account)
 | 
				
			||||||
    account.mute!(target_account, **opts.slice(:notifications))
 | 
					    account.mute!(target_account, notifications: notifications)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user