about summary refs log tree commit diff
path: root/app/services/follow_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/follow_service.rb')
-rw-r--r--app/services/follow_service.rb17
1 files changed, 14 insertions, 3 deletions
diff --git a/app/services/follow_service.rb b/app/services/follow_service.rb
index ea868b544..623d52b74 100644
--- a/app/services/follow_service.rb
+++ b/app/services/follow_service.rb
@@ -1,12 +1,23 @@
-class FollowService
+class FollowService < BaseService
+  # 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
   def call(source_account, uri)
     target_account = follow_remote_account_service.(uri)
-    source_account.follow!(target_account) unless target_account.nil?
+
+    return if target_account.nil?
+
+    follow = source_account.follow!(target_account)
+    send_interaction_service.(follow.stream_entry, target_account)
   end
 
   private
 
   def follow_remote_account_service
-    FollowRemoteAccountService.new
+    @follow_remote_account_service ||= FollowRemoteAccountService.new
+  end
+
+  def send_interaction_service
+    @send_interaction_service ||= SendInteractionService.new
   end
 end