diff --git a/lib/diaspora_federation.rb b/lib/diaspora_federation.rb index 7b89b6f..38c8d29 100644 --- a/lib/diaspora_federation.rb +++ b/lib/diaspora_federation.rb @@ -29,6 +29,7 @@ module DiasporaFederation fetch_author_public_key_by_entity_guid entity_author_is_local? fetch_entity_author_id_by_guid + fetch_related_entity queue_public_receive queue_private_receive receive_entity @@ -181,6 +182,12 @@ module DiasporaFederation # @param [String] guid of the entity # @return [String] Diaspora ID of the person # + # fetch_related_entity + # Fetches a related entity by a given guid + # @param [String] entity_type (Post, Comment, Like, etc) + # @param [String] guid of the entity + # @return [DiasporaFederation::Entities::RelatedEntity] related entity + # # queue_public_receive # Queue a public salmon xml to process in background # @param [String] data salmon slap xml or magic envelope xml diff --git a/test/dummy/config/initializers/diaspora_federation.rb b/test/dummy/config/initializers/diaspora_federation.rb index 9308b38..8c03c36 100644 --- a/test/dummy/config/initializers/diaspora_federation.rb +++ b/test/dummy/config/initializers/diaspora_federation.rb @@ -90,6 +90,16 @@ DiasporaFederation.configure do |config| Entity.where(entity_type: entity_type, guid: guid).joins(:author).pluck(:diaspora_id).first end + on :fetch_related_entity do |entity_type, guid| + entity = Entity.find_by(entity_type: entity_type, guid: guid) + if entity + DiasporaFederation::Entities::RelatedEntity.new( + author: entity.author.diaspora_id, + local: !entity.author.serialized_private_key.nil? + ) + end + end + on :queue_public_receive do end