about summary refs log tree commit diff
path: root/app/services/follow_service.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-02-11 02:12:05 +0100
committerEugen Rochko <eugen@zeonfederated.com>2017-02-11 02:58:00 +0100
commit149887a0ffc81b588520ff82ab9fda8dff7bce6c (patch)
treefc1ba51d91fbadf729241381a8c46643121ad99f /app/services/follow_service.rb
parentd551e43a9bc35b4785285e78f5ecd3157636b447 (diff)
Make follow requests federate
Diffstat (limited to 'app/services/follow_service.rb')
-rw-r--r--app/services/follow_service.rb13
1 files changed, 9 insertions, 4 deletions
diff --git a/app/services/follow_service.rb b/app/services/follow_service.rb
index 9f34cb6ac..45b7895b6 100644
--- a/app/services/follow_service.rb
+++ b/app/services/follow_service.rb
@@ -1,6 +1,8 @@
 # frozen_string_literal: true
 
 class FollowService < BaseService
+  include StreamEntryRenderer
+
   # Follow a remote user, notify remote user about the follow
   # @param [Account] source_account From which to follow
   # @param [String] uri User URI to follow in the form of username@domain
@@ -20,10 +22,13 @@ class FollowService < BaseService
   private
 
   def request_follow(source_account, target_account)
-    return unless target_account.local?
-
     follow_request = FollowRequest.create!(account: source_account, target_account: target_account)
-    NotifyService.new.call(target_account, follow_request)
+
+    if target_account.local?
+      NotifyService.new.call(target_account, follow_request)
+    else
+      NotificationWorker.perform_async(stream_entry_to_xml(follow_request.stream_entry), source_account.id, target_account.id)
+    end
 
     follow_request
   end
@@ -35,7 +40,7 @@ class FollowService < BaseService
       NotifyService.new.call(target_account, follow)
     else
       subscribe_service.call(target_account)
-      NotificationWorker.perform_async(follow.stream_entry.id, target_account.id)
+      NotificationWorker.perform_async(stream_entry_to_xml(follow.stream_entry), source_account.id, target_account.id)
     end
 
     MergeWorker.perform_async(target_account.id, source_account.id)