about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/api/salmon_controller.rb10
-rw-r--r--app/services/follow_remote_account_service.rb2
2 files changed, 10 insertions, 2 deletions
diff --git a/app/controllers/api/salmon_controller.rb b/app/controllers/api/salmon_controller.rb
index 8bd653d7d..c0ba32ff2 100644
--- 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
index 43d3698e9..0a95badb2 100644
--- 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