Skip to content
Snippets Groups Projects
Commit 1d9c8865 authored by Eugen Rochko's avatar Eugen Rochko
Browse files

Adding enclosures to Atom and statuses JSON

parent eec0dc46
No related branches found
No related tags found
No related merge requests found
......@@ -125,6 +125,10 @@ module AtomBuilderHelper
xml.link(rel: 'mentioned', href: uri_for_target(account))
end
def link_enclosure(xml, media)
xml.link(rel: 'enclosure', href: full_asset_url(media.file.url), type: media.file_content_type, length: media.file_size)
end
def link_avatar(xml, account)
single_link_avatar(xml, account, :large, 300)
single_link_avatar(xml, account, :medium, 96)
......@@ -205,6 +209,12 @@ module AtomBuilderHelper
stream_entry.mentions.each do |mentioned|
link_mention xml, mentioned
end
if stream_entry.activity.is_a?(Status)
stream_entry.activity.media_attachments.each do |media|
link_enclosure xml, media
end
end
end
private
......
......@@ -18,7 +18,7 @@ class Status < ApplicationRecord
validates :text, presence: true, if: Proc.new { |s| s.local? && !s.reblog? }
scope :with_counters, -> { select('statuses.*, (select count(r.id) from statuses as r where r.reblog_of_id = statuses.id) as reblogs_count, (select count(f.id) from favourites as f where f.status_id = statuses.id) as favourites_count') }
scope :with_includes, -> { includes(:account, :mentions, :stream_entry, reblog: [:account, :mentions], thread: :account) }
scope :with_includes, -> { includes(:account, :mentions, :media_attachments, :stream_entry, reblog: [:account, :mentions], thread: :account) }
def local?
self.uri.nil?
......
......@@ -16,3 +16,7 @@ end
child :account do
extends('api/accounts/show')
end
child :media_attachments do
node(:url) { |media| full_asset_url(media.file.url) }
end
......@@ -174,6 +174,10 @@ RSpec.describe AtomBuilderHelper, type: :helper do
end
end
describe '#link_enclosure' do
pending
end
describe '#logo' do
it 'creates a logo' do
expect(used_in_builder { |xml| helper.logo(xml, 1) }).to match '<logo>1</logo>'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment