diff options
author | OSAMU SATO <satosamu@gmail.com> | 2020-10-13 08:01:14 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-13 01:01:14 +0200 |
commit | 96761752eccfc0d239974a24e0cc2d74c6aee7ac (patch) | |
tree | 1590275b4f8a1f954d90e870ef2bfb8ac00d7109 /app/models/concerns | |
parent | f54ca3d08e068af07a5b7a8b139e7658b3236db8 (diff) |
Add duration parameter to muting. (#13831)
* Adding duration to muting. * Remove useless checks
Diffstat (limited to 'app/models/concerns')
-rw-r--r-- | app/models/concerns/account_interactions.rb | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb index 427ebdae2..6a0ad5aa9 100644 --- a/app/models/concerns/account_interactions.rb +++ b/app/models/concerns/account_interactions.rb @@ -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. |