logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: c450ddb6134602ecc2917c493240e55e8773520b
parent: 15b886a6f0b0b9cdb3a5d938a7ec5c902d65410d
Author: Eugen Rochko <eugen@zeonfederated.com>
Date:   Sun, 10 Sep 2017 15:09:06 +0200

Fix POST /api/v1/follows error when already following (#4878)


Diffstat:

Mapp/controllers/api/v1/follows_controller.rb6++++++
Mspec/controllers/api/v1/follows_controller_spec.rb5+++++
2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/app/controllers/api/v1/follows_controller.rb b/app/controllers/api/v1/follows_controller.rb @@ -10,6 +10,12 @@ class Api::V1::FollowsController < Api::BaseController raise ActiveRecord::RecordNotFound if follow_params[:uri].blank? @account = FollowService.new.call(current_user.account, target_uri).try(:target_account) + + if @account.nil? + username, domain = target_uri.split('@') + @account = Account.find_remote!(username, domain) + end + render json: @account, serializer: REST::AccountSerializer end diff --git a/spec/controllers/api/v1/follows_controller_spec.rb b/spec/controllers/api/v1/follows_controller_spec.rb @@ -42,5 +42,10 @@ RSpec.describe Api::V1::FollowsController, type: :controller do it 'subscribes to remote hub' do expect(a_request(:post, "https://quitter.no/main/push/hub")).to have_been_made end + + it 'returns http success if already following, too' do + post :create, params: { uri: 'gargron@quitter.no' } + expect(response).to have_http_status(:success) + end end end