Less gross passing of notifications flag

This commit is contained in:
Surinna Curtis 2017-07-28 00:12:34 -05:00 committed by aschmitz
parent aded1acfda
commit f3aac23099
2 changed files with 3 additions and 7 deletions

View file

@ -26,7 +26,7 @@ class Api::V1::AccountsController < Api::BaseController
end end
def mute 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 render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships
end end

View file

@ -1,14 +1,10 @@
# frozen_string_literal: true # frozen_string_literal: true
class MuteService < BaseService class MuteService < BaseService
def call(account, target_account, notifications: nil) def call(account, target_account, **opts)
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)
# This unwieldy approach avoids duplicating the default value here mute = account.mute!(target_account, **opts.slice(:notifications))
# and in mute!.
opts = {}
opts[:notifications] = notifications unless notifications.nil?
mute = account.mute!(target_account, **opts)
BlockWorker.perform_async(account.id, target_account.id) BlockWorker.perform_async(account.id, target_account.id)
mute mute
end end