commit: 69643338f6810d1ae36249e49b910212b1ecccf4
parent: e8d6f6c8c15d68d735a6b4b15fe013054451953a
Author: Eugen <eugen@zeonfederated.com>
Date: Sun, 8 Jan 2017 04:14:54 +0100
Merge pull request #437 from krainboltgreene/patch-1
Simplifying followers mappings
Diffstat:
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/app/models/account.rb b/app/models/account.rb
@@ -175,19 +175,23 @@ class Account < ApplicationRecord
end
def following_map(target_account_ids, account_id)
- Follow.where(target_account_id: target_account_ids).where(account_id: account_id).map { |f| [f.target_account_id, true] }.to_h
+ follow_mapping(Follow.where(target_account_id: target_account_ids, account_id: account_id), :target_account_id)
end
def followed_by_map(target_account_ids, account_id)
- Follow.where(account_id: target_account_ids).where(target_account_id: account_id).map { |f| [f.account_id, true] }.to_h
+ follow_mapping(Follow.where(account_id: target_account_ids, target_account_id: account_id), :account_id)
end
def blocking_map(target_account_ids, account_id)
- Block.where(target_account_id: target_account_ids).where(account_id: account_id).map { |b| [b.target_account_id, true] }.to_h
+ follow_mapping(Block.where(target_account_id: target_account_ids, account_id: account_id), :target_account_id)
end
def requested_map(target_account_ids, account_id)
- FollowRequest.where(target_account_id: target_account_ids).where(account_id: account_id).map { |r| [r.target_account_id, true] }.to_h
+ follow_mapping(FollowRequest.where(target_account_id: target_account_ids, account_id: account_id), :target_account_id)
+ end
+
+ private def follow_mapping(query, field)
+ query.pluck(field).inject({}) { |mapping, id| mapping[id] = true }
end
end