create public and private dispatcher
This commit is contained in:
parent
7184d4334e
commit
f53b5ffe6b
4 changed files with 38 additions and 4 deletions
|
|
@ -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
|
||||||
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
|
||||||
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
|
||||||
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
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
require "diaspora/federation/dispatcher/private"
|
||||||
|
require "diaspora/federation/dispatcher/public"
|
||||||
|
|
|
||||||
11
lib/diaspora/federation/dispatcher/private.rb
Normal file
11
lib/diaspora/federation/dispatcher/private.rb
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
module Diaspora
|
||||||
|
module Federation
|
||||||
|
class Dispatcher
|
||||||
|
class Private < Dispatcher
|
||||||
|
def deliver_to_remote(people)
|
||||||
|
# TODO
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
16
lib/diaspora/federation/dispatcher/public.rb
Normal file
16
lib/diaspora/federation/dispatcher/public.rb
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
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
|
||||||
Loading…
Reference in a new issue