add is_following field on user endpoint
This commit is contained in:
@@ -14,4 +14,8 @@ class User < ApplicationRecord
|
|||||||
has_many :user_follows_followers, class_name: 'UserFollow', foreign_key: :followed_id
|
has_many :user_follows_followers, class_name: 'UserFollow', foreign_key: :followed_id
|
||||||
has_many :following, through: :user_follows_following, source: :followed
|
has_many :following, through: :user_follows_following, source: :followed
|
||||||
has_many :followers, through: :user_follows_followers, source: :follower
|
has_many :followers, through: :user_follows_followers, source: :follower
|
||||||
|
|
||||||
|
def is_following?(user)
|
||||||
|
user_follows_following.where(followed_id: user&.id).exists?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,5 +3,6 @@ json.joined_at user.created_at.strftime("%B %d, %Y")
|
|||||||
json.following_count user.following.count
|
json.following_count user.following.count
|
||||||
json.follower_count user.followers.count
|
json.follower_count user.followers.count
|
||||||
json.posts_count user.posts.count
|
json.posts_count user.posts.count
|
||||||
|
json.is_following user.is_following?(@current_user)
|
||||||
|
|
||||||
json.url user_url(user, format: :json)
|
json.url user_url(user, format: :json)
|
||||||
|
|||||||
@@ -61,4 +61,21 @@ RSpec.describe User, type: :model do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#is_following?' do
|
||||||
|
it do
|
||||||
|
following_user = create(:user)
|
||||||
|
now_following_user = create(:user)
|
||||||
|
followed_user = create(:user)
|
||||||
|
|
||||||
|
create(:user_follow, follower_id: following_user.id, followed_id: followed_user.id)
|
||||||
|
|
||||||
|
expect(
|
||||||
|
following_user.is_following?(followed_user)
|
||||||
|
).to be_truthy
|
||||||
|
expect(
|
||||||
|
now_following_user.is_following?(followed_user)
|
||||||
|
).to be_falsey
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user