Add updated relationship to follow request API responses (#11800)

Fixes #11747
main
ThibG 2019-09-10 20:56:42 +02:00 committed by Eugen Rochko
parent 17389c63c8
commit 4faaa5b25e
2 changed files with 18 additions and 2 deletions

View File

@ -14,12 +14,12 @@ class Api::V1::FollowRequestsController < Api::BaseController
def authorize def authorize
AuthorizeFollowService.new.call(account, current_account) AuthorizeFollowService.new.call(account, current_account)
NotifyService.new.call(current_account, Follow.find_by(account: account, target_account: current_account)) NotifyService.new.call(current_account, Follow.find_by(account: account, target_account: current_account))
render_empty render json: account, serializer: REST::RelationshipSerializer, relationships: relationships
end end
def reject def reject
RejectFollowService.new.call(account, current_account) RejectFollowService.new.call(account, current_account)
render_empty render json: account, serializer: REST::RelationshipSerializer, relationships: relationships
end end
private private
@ -28,6 +28,10 @@ class Api::V1::FollowRequestsController < Api::BaseController
Account.find(params[:id]) Account.find(params[:id])
end end
def relationships(**options)
AccountRelationshipsPresenter.new([params[:id]], current_user.account_id, options)
end
def load_accounts def load_accounts
default_accounts.merge(paginated_follow_requests).to_a default_accounts.merge(paginated_follow_requests).to_a
end end

View File

@ -38,6 +38,12 @@ RSpec.describe Api::V1::FollowRequestsController, type: :controller do
it 'allows follower to follow' do it 'allows follower to follow' do
expect(follower.following?(user.account)).to be true expect(follower.following?(user.account)).to be true
end end
it 'returns JSON with followed_by=true' do
json = body_as_json
expect(json[:followed_by]).to be true
end
end end
describe 'POST #reject' do describe 'POST #reject' do
@ -54,5 +60,11 @@ RSpec.describe Api::V1::FollowRequestsController, type: :controller do
it 'removes follow request' do it 'removes follow request' do
expect(FollowRequest.where(target_account: user.account, account: follower).count).to eq 0 expect(FollowRequest.where(target_account: user.account, account: follower).count).to eq 0
end end
it 'returns JSON with followed_by=false' do
json = body_as_json
expect(json[:followed_by]).to be false
end
end end
end end