Skip to content
Extraits de code Groupes Projets
Valider f53b5ffe rédigé par Benjamin Neff's avatar Benjamin Neff
Parcourir les fichiers

create public and private dispatcher

parent 7184d433
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -15,5 +15,6 @@ module Diaspora ...@@ -15,5 +15,6 @@ module Diaspora
end end
end end
require "diaspora/federation/dispatcher"
require "diaspora/federation/entities" require "diaspora/federation/entities"
require "diaspora/federation/receive" require "diaspora/federation/receive"
...@@ -10,7 +10,11 @@ module Diaspora ...@@ -10,7 +10,11 @@ module Diaspora
end end
def self.build(sender, object, opts={}) def self.build(sender, object, opts={})
new(sender, object, opts) if object.try(:public?)
Public.new(sender, object, opts)
else
Private.new(sender, object, opts)
end
end end
def self.defer_dispatch(sender, object, opts={}) def self.defer_dispatch(sender, object, opts={})
...@@ -27,7 +31,6 @@ module Diaspora ...@@ -27,7 +31,6 @@ module Diaspora
attr_reader :sender, :object, :opts attr_reader :sender, :object, :opts
def deliver_to_services def deliver_to_services
# TODO: pubsubhubbub, relay
deliver_to_user_services deliver_to_user_services
end end
...@@ -44,8 +47,8 @@ module Diaspora ...@@ -44,8 +47,8 @@ module Diaspora
Workers::ReceiveLocal.perform_async(obj.class.to_s, obj.id, people.map(&:owner_id)) Workers::ReceiveLocal.perform_async(obj.class.to_s, obj.id, people.map(&:owner_id))
end end
def deliver_to_remote(people) def deliver_to_remote(_people)
# TODO: send to remote hosts raise NotImplementedError, "This is an abstract base method. Implement in your subclass."
end end
def deliver_to_user_services def deliver_to_user_services
...@@ -71,3 +74,6 @@ module Diaspora ...@@ -71,3 +74,6 @@ module Diaspora
end end
end end
end end
require "diaspora/federation/dispatcher/private"
require "diaspora/federation/dispatcher/public"
module Diaspora
module Federation
class Dispatcher
class Private < Dispatcher
def deliver_to_remote(people)
# TODO
end
end
end
end
end
module Diaspora
module Federation
class Dispatcher
class Public < Dispatcher
def deliver_to_services
# TODO: pubsubhubbub, relay
super
end
def deliver_to_remote(people)
# TODO
end
end
end
end
end
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter