Add duration parameter to muting. (#13831)
* Adding duration to muting. * Remove useless checks
This commit is contained in:
@ -131,9 +131,12 @@ module AccountInteractions
|
||||
.find_or_create_by!(target_account: other_account)
|
||||
end
|
||||
|
||||
def mute!(other_account, notifications: nil)
|
||||
def mute!(other_account, notifications: nil, duration: 0)
|
||||
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_initialize_by(target_account: other_account)
|
||||
mute.expires_in = duration.zero? ? nil : duration
|
||||
mute.save!
|
||||
|
||||
remove_potential_friendship(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.
|
||||
|
@ -9,11 +9,13 @@
|
||||
# account_id :bigint(8) not null
|
||||
# target_account_id :bigint(8) not null
|
||||
# hide_notifications :boolean default(TRUE), not null
|
||||
# expires_at :datetime
|
||||
#
|
||||
|
||||
class Mute < ApplicationRecord
|
||||
include Paginable
|
||||
include RelationshipCacheable
|
||||
include Expireable
|
||||
|
||||
belongs_to :account
|
||||
belongs_to :target_account, class_name: 'Account'
|
||||
|
Reference in New Issue
Block a user