From 5f25135848513faafc359794e8d51cd748baf581 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Wed, 25 May 2016 02:41:06 +0200 Subject: [PATCH] send public messages --- lib/diaspora/federation/dispatcher/public.rb | 17 ++++++++++++++++- .../integration/federation/federation_helper.rb | 6 +++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/diaspora/federation/dispatcher/public.rb b/lib/diaspora/federation/dispatcher/public.rb index f6ceea0b6..676b41670 100644 --- a/lib/diaspora/federation/dispatcher/public.rb +++ b/lib/diaspora/federation/dispatcher/public.rb @@ -8,7 +8,22 @@ module Diaspora end def deliver_to_remote(people) - # TODO + entity = Entities.build(object) + Workers::SendPublic.perform_async(sender.id, entity.to_s, target_urls(people), salmon_xml(entity)) + end + + private + + def target_urls(people) + Pod.where(id: people.map(&:pod_id).uniq).map {|pod| pod.url_to("/receive/public") } + end + + def salmon_xml(entity) + DiasporaFederation::Salmon::Slap.generate_xml( + sender.diaspora_handle, + sender.encryption_key, + entity + ) end end end diff --git a/spec/integration/federation/federation_helper.rb b/spec/integration/federation/federation_helper.rb index 9e5377707..1c171e5ba 100644 --- a/spec/integration/federation/federation_helper.rb +++ b/spec/integration/federation/federation_helper.rb @@ -49,13 +49,13 @@ def generate_xml(entity, remote_user, recipient=nil) if recipient DiasporaFederation::Salmon::EncryptedSlap.prepare( remote_user.diaspora_handle, - OpenSSL::PKey::RSA.new(remote_user.encryption_key), + remote_user.encryption_key, entity - ).generate_xml(OpenSSL::PKey::RSA.new(recipient.encryption_key)) + ).generate_xml(recipient.encryption_key) else DiasporaFederation::Salmon::Slap.generate_xml( remote_user.diaspora_handle, - OpenSSL::PKey::RSA.new(remote_user.encryption_key), + remote_user.encryption_key, entity ) end