diff options
Diffstat (limited to 'app/models/account.rb')
-rw-r--r-- | app/models/account.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/app/models/account.rb b/app/models/account.rb index d43cae038..bf3d92a51 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -84,6 +84,7 @@ class Account < ApplicationRecord # Mute relationships has_many :mute_relationships, class_name: 'Mute', foreign_key: 'account_id', dependent: :destroy has_many :muting, -> { order('mutes.id desc') }, through: :mute_relationships, source: :target_account + has_many :conversation_mutes # Media has_many :media_attachments, dependent: :destroy @@ -130,6 +131,10 @@ class Account < ApplicationRecord mute_relationships.find_or_create_by!(target_account: other_account) end + def mute_conversation!(conversation) + conversation_mutes.find_or_create_by!(conversation: conversation) + end + def unfollow!(other_account) follow = active_relationships.find_by(target_account: other_account) follow&.destroy @@ -145,6 +150,11 @@ class Account < ApplicationRecord mute&.destroy end + def unmute_conversation!(conversation) + mute = conversation_mutes.find_by(conversation: conversation) + mute&.destroy! + end + def following?(other_account) following.include?(other_account) end @@ -157,6 +167,10 @@ class Account < ApplicationRecord muting.include?(other_account) end + def muting_conversation?(conversation) + conversation_mutes.where(conversation: conversation).exists? + end + def requested?(other_account) follow_requests.where(target_account: other_account).exists? end |