|
|
@ -46,82 +46,82 @@ module AccountInteractions
|
|
|
|
has_many :muting, -> { order('mutes.id desc') }, through: :mute_relationships, source: :target_account
|
|
|
|
has_many :muting, -> { order('mutes.id desc') }, through: :mute_relationships, source: :target_account
|
|
|
|
has_many :conversation_mutes, dependent: :destroy
|
|
|
|
has_many :conversation_mutes, dependent: :destroy
|
|
|
|
has_many :domain_blocks, class_name: 'AccountDomainBlock', dependent: :destroy
|
|
|
|
has_many :domain_blocks, class_name: 'AccountDomainBlock', dependent: :destroy
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def follow!(other_account)
|
|
|
|
def follow!(other_account)
|
|
|
|
active_relationships.find_or_create_by!(target_account: other_account)
|
|
|
|
active_relationships.find_or_create_by!(target_account: other_account)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def block!(other_account)
|
|
|
|
def block!(other_account)
|
|
|
|
block_relationships.find_or_create_by!(target_account: other_account)
|
|
|
|
block_relationships.find_or_create_by!(target_account: other_account)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def mute!(other_account)
|
|
|
|
def mute!(other_account)
|
|
|
|
mute_relationships.find_or_create_by!(target_account: other_account)
|
|
|
|
mute_relationships.find_or_create_by!(target_account: other_account)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def mute_conversation!(conversation)
|
|
|
|
def mute_conversation!(conversation)
|
|
|
|
conversation_mutes.find_or_create_by!(conversation: conversation)
|
|
|
|
conversation_mutes.find_or_create_by!(conversation: conversation)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def block_domain!(other_domain)
|
|
|
|
def block_domain!(other_domain)
|
|
|
|
domain_blocks.find_or_create_by!(domain: other_domain)
|
|
|
|
domain_blocks.find_or_create_by!(domain: other_domain)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def unfollow!(other_account)
|
|
|
|
def unfollow!(other_account)
|
|
|
|
follow = active_relationships.find_by(target_account: other_account)
|
|
|
|
follow = active_relationships.find_by(target_account: other_account)
|
|
|
|
follow&.destroy
|
|
|
|
follow&.destroy
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def unblock!(other_account)
|
|
|
|
def unblock!(other_account)
|
|
|
|
block = block_relationships.find_by(target_account: other_account)
|
|
|
|
block = block_relationships.find_by(target_account: other_account)
|
|
|
|
block&.destroy
|
|
|
|
block&.destroy
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def unmute!(other_account)
|
|
|
|
def unmute!(other_account)
|
|
|
|
mute = mute_relationships.find_by(target_account: other_account)
|
|
|
|
mute = mute_relationships.find_by(target_account: other_account)
|
|
|
|
mute&.destroy
|
|
|
|
mute&.destroy
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def unmute_conversation!(conversation)
|
|
|
|
def unmute_conversation!(conversation)
|
|
|
|
mute = conversation_mutes.find_by(conversation: conversation)
|
|
|
|
mute = conversation_mutes.find_by(conversation: conversation)
|
|
|
|
mute&.destroy!
|
|
|
|
mute&.destroy!
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def unblock_domain!(other_domain)
|
|
|
|
def unblock_domain!(other_domain)
|
|
|
|
block = domain_blocks.find_by(domain: other_domain)
|
|
|
|
block = domain_blocks.find_by(domain: other_domain)
|
|
|
|
block&.destroy
|
|
|
|
block&.destroy
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def following?(other_account)
|
|
|
|
def following?(other_account)
|
|
|
|
active_relationships.where(target_account: other_account).exists?
|
|
|
|
active_relationships.where(target_account: other_account).exists?
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def blocking?(other_account)
|
|
|
|
def blocking?(other_account)
|
|
|
|
block_relationships.where(target_account: other_account).exists?
|
|
|
|
block_relationships.where(target_account: other_account).exists?
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def domain_blocking?(other_domain)
|
|
|
|
def domain_blocking?(other_domain)
|
|
|
|
domain_blocks.where(domain: other_domain).exists?
|
|
|
|
domain_blocks.where(domain: other_domain).exists?
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def muting?(other_account)
|
|
|
|
def muting?(other_account)
|
|
|
|
mute_relationships.where(target_account: other_account).exists?
|
|
|
|
mute_relationships.where(target_account: other_account).exists?
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def muting_conversation?(conversation)
|
|
|
|
def muting_conversation?(conversation)
|
|
|
|
conversation_mutes.where(conversation: conversation).exists?
|
|
|
|
conversation_mutes.where(conversation: conversation).exists?
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def requested?(other_account)
|
|
|
|
def requested?(other_account)
|
|
|
|
follow_requests.where(target_account: other_account).exists?
|
|
|
|
follow_requests.where(target_account: other_account).exists?
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def favourited?(status)
|
|
|
|
def favourited?(status)
|
|
|
|
status.proper.favourites.where(account: self).exists?
|
|
|
|
status.proper.favourites.where(account: self).exists?
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def reblogged?(status)
|
|
|
|
def reblogged?(status)
|
|
|
|
status.proper.reblogs.where(account: self).exists?
|
|
|
|
status.proper.reblogs.where(account: self).exists?
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|