commit: 157f03f8bdbca1b34895099b38e5f2a1aeb1bd23
parent: 36e7eeb6b9b2964f05b3b842ddc05bdd42ff62d1
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Thu, 13 Oct 2016 13:41:06 +0200
No-op for Salmons without body, fail fast if Webfinger does not contain
all required resource links (profile page, salmon, atom feed, magic key)
Diffstat:
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/app/controllers/api/salmon_controller.rb b/app/controllers/api/salmon_controller.rb
@@ -3,8 +3,14 @@ class Api::SalmonController < ApiController
respond_to :txt
def update
- ProcessInteractionService.new.call(request.body.read, @account)
- head 201
+ body = request.body.read
+
+ if body.nil?
+ head 200
+ else
+ ProcessInteractionService.new.call(body, @account)
+ head 201
+ end
end
private
diff --git a/app/services/follow_remote_account_service.rb b/app/services/follow_remote_account_service.rb
@@ -23,6 +23,8 @@ class FollowRemoteAccountService < BaseService
data = Goldfinger.finger("acct:#{uri}")
+ raise Goldfinger::Error, 'Missing resource links' if data.link('http://schemas.google.com/g/2010#updates-from').nil? || data.link('salmon').nil? || data.link('http://webfinger.net/rel/profile-page').nil? || data.link('magic-public-key').nil?
+
account.remote_url = data.link('http://schemas.google.com/g/2010#updates-from').href
account.salmon_url = data.link('salmon').href
account.url = data.link('http://webfinger.net/rel/profile-page').href