about summary refs log tree commit diff
path: root/app/services/unfollow_service.rb
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2019-09-19 00:22:39 +0200
committerGitHub <noreply@github.com>2019-09-19 00:22:39 +0200
commitfebcdad2e2c98aee62b55ee21bdf0debf7c6fd6b (patch)
tree1a99988dd7a46824527e59ee1861aa72ad7412ce /app/services/unfollow_service.rb
parentab646fac5f582fe9bef22d8b9a4995fbb4b42d7d (diff)
parent2ecc7106d7fc222ca84777fc279e9f46f80afd5a (diff)
Merge pull request #1221 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/services/unfollow_service.rb')
-rw-r--r--app/services/unfollow_service.rb11
1 files changed, 9 insertions, 2 deletions
diff --git a/app/services/unfollow_service.rb b/app/services/unfollow_service.rb
index b7033d7eb..151f3674f 100644
--- a/app/services/unfollow_service.rb
+++ b/app/services/unfollow_service.rb
@@ -6,9 +6,12 @@ class UnfollowService < BaseService
   # Unfollow and notify the remote user
   # @param [Account] source_account Where to unfollow from
   # @param [Account] target_account Which to unfollow
-  def call(source_account, target_account)
+  # @param [Hash] options
+  # @option [Boolean] :skip_unmerge
+  def call(source_account, target_account, options = {})
     @source_account = source_account
     @target_account = target_account
+    @options        = options
 
     unfollow! || undo_follow_request!
   end
@@ -21,9 +24,11 @@ class UnfollowService < BaseService
     return unless follow
 
     follow.destroy!
+
     create_notification(follow) if !@target_account.local? && @target_account.activitypub?
     create_reject_notification(follow) if @target_account.local? && !@source_account.local? && @source_account.activitypub?
-    UnmergeWorker.perform_async(@target_account.id, @source_account.id)
+    UnmergeWorker.perform_async(@target_account.id, @source_account.id) unless @options[:skip_unmerge]
+
     follow
   end
 
@@ -33,7 +38,9 @@ class UnfollowService < BaseService
     return unless follow_request
 
     follow_request.destroy!
+
     create_notification(follow_request) unless @target_account.local?
+
     follow_request
   end