class DiasporaFederation::Federation::Receiver::AbstractReceiver
Common functionality for receivers
Attributes
entity[R]
recipient_id[R]
sender[R]
Public Class Methods
new(magic_envelope, recipient_id=nil)
click to toggle source
Creates a new receiver @param [MagicEnvelope] magic_envelope the received magic envelope @param [Object] recipient_id
the identifier of the recipient of a private message
# File lib/diaspora_federation/federation/receiver/abstract_receiver.rb, line 13 def initialize(magic_envelope, recipient_id=nil) @entity = magic_envelope.payload @sender = magic_envelope.sender @recipient_id = recipient_id end
Public Instance Methods
receive()
click to toggle source
Validates and receives the entity
# File lib/diaspora_federation/federation/receiver/abstract_receiver.rb, line 20 def receive validate_and_receive rescue => e # rubocop:disable Style/RescueStandardError logger.error "failed to receive #{entity}" raise e end
Private Instance Methods
fetch_linked_entities_from_text()
click to toggle source
# File lib/diaspora_federation/federation/receiver/abstract_receiver.rb, line 50 def fetch_linked_entities_from_text DiasporaUrlParser.fetch_linked_entities(entity.text) if entity.respond_to?(:text) && entity.text end
sender_valid?()
click to toggle source
# File lib/diaspora_federation/federation/receiver/abstract_receiver.rb, line 42 def sender_valid? if entity.respond_to?(:sender_valid?) entity.sender_valid?(sender) else sender == entity.author end end
validate()
click to toggle source
# File lib/diaspora_federation/federation/receiver/abstract_receiver.rb, line 38 def validate raise InvalidSender, "invalid sender: #{sender}" unless sender_valid? end
validate_and_receive()
click to toggle source
# File lib/diaspora_federation/federation/receiver/abstract_receiver.rb, line 31 def validate_and_receive validate fetch_linked_entities_from_text DiasporaFederation.callbacks.trigger(:receive_entity, entity, sender, recipient_id) logger.info "successfully received #{entity} from person #{sender}#{" for #{recipient_id}" if recipient_id}" end