summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/services/process_interaction_service.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/app/services/process_interaction_service.rb b/app/services/process_interaction_service.rb
index 8420ca35193..c74ff9e22f3 100644
--- a/app/services/process_interaction_service.rb
+++ b/app/services/process_interaction_service.rb
@@ -39,6 +39,8 @@ class ProcessInteractionService < BaseService
unfollow!(account, target_account)
when :favorite
favourite!(xml, account)
+ when :unfavorite
+ unfavourite!(xml, account)
when :post
add_post!(body, account) if mentions_account?(xml, target_account)
when :share
@@ -121,6 +123,12 @@ class ProcessInteractionService < BaseService
NotifyService.new.call(current_status.account, favourite)
end
+ def unfavourite!(xml, from_account)
+ current_status = status(xml)
+ favourite = current_status.favourites.where(account: from_account).first
+ favourite&.destroy
+ end
+
def add_post!(body, account)
process_feed_service.call(body, account)
end