From 970e8bb3ecbe219c3784db79350db6e59823d70c Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Thu, 19 May 2016 05:02:52 +0200 Subject: [PATCH] handle user services --- lib/diaspora/federation/dispatcher.rb | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/diaspora/federation/dispatcher.rb b/lib/diaspora/federation/dispatcher.rb index f68ce9e8e..4950cfcb9 100644 --- a/lib/diaspora/federation/dispatcher.rb +++ b/lib/diaspora/federation/dispatcher.rb @@ -27,7 +27,8 @@ module Diaspora attr_reader :sender, :object, :opts def deliver_to_services - # TODO: pubsubhubbub, relay, social-network-services + # TODO: pubsubhubbub, relay + deliver_to_user_services end def deliver_to_subscribers @@ -44,6 +45,27 @@ module Diaspora def deliver_to_remote(people) # TODO: send to remote hosts end + + def deliver_to_user_services + services.each do |service| + case object + when StatusMessage + Workers::PostToService.perform_async(service.id, object.id, opts[:url]) + when Retraction + Workers::DeletePostFromService.perform_async(service.id, object.target.id) + end + end + end + + def services + if opts[:services] + opts[:services] + elsif opts[:service_types] + sender.services.where(type: opts[:service_types]) + else + [] + end + end end end end