0
0
Fork 0

Add duration parameter to muting. (#13831)

* Adding duration to muting.

* Remove useless checks
This commit is contained in:
OSAMU SATO 2020-10-13 08:01:14 +09:00 committed by GitHub
parent f54ca3d08e
commit 96761752ec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 124 additions and 14 deletions

View file

@ -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.