1
0
Fork 0
mirror of https://github.com/mastodon/mastodon.git synced 2024-08-20 21:08:15 -07:00
mastodon/app/services/send_interaction_service.rb

30 lines
733 B
Ruby
Raw Normal View History

2016-02-24 03:57:29 -08:00
class SendInteractionService < BaseService
include AtomBuilderHelper
2016-02-24 03:57:29 -08:00
# Send an Atom representation of an interaction to a remote Salmon endpoint
# @param [StreamEntry] stream_entry
# @param [Account] target_account
def call(stream_entry, target_account)
2016-02-28 06:46:29 -08:00
envelope = salmon.pack(entry_xml(stream_entry), stream_entry.account.keypair)
2016-02-24 03:57:29 -08:00
salmon.post(target_account.salmon_url, envelope)
end
private
def entry_xml(stream_entry)
Nokogiri::XML::Builder.new do |xml|
entry(xml, true) do
author(xml) do
include_author xml, stream_entry.account
end
include_entry xml, stream_entry
end
end.to_xml
end
def salmon
@salmon ||= OStatus2::Salmon.new
end
end