Merge pull request #603 from evanminto/activitypub-account
Expose ActivityStreams 2.0 representation of accounts
This commit is contained in:
commit
9d5fb49cd8
|
@ -18,6 +18,8 @@ class AccountsController < ApplicationController
|
||||||
format.atom do
|
format.atom do
|
||||||
@entries = @account.stream_entries.order('id desc').where(hidden: false).with_includes.paginate_by_max_id(20, params[:max_id], params[:since_id])
|
@entries = @account.stream_entries.order('id desc').where(hidden: false).with_includes.paginate_by_max_id(20, params[:max_id], params[:since_id])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
format.activitystreams2
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
8
app/views/accounts/show.activitystreams2.rabl
Normal file
8
app/views/accounts/show.activitystreams2.rabl
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
extends 'activitypub/types/person.activitystreams2.rabl'
|
||||||
|
|
||||||
|
object @account
|
||||||
|
|
||||||
|
attributes display_name: :name, username: :preferredUsername, note: :summary
|
||||||
|
|
||||||
|
node(:icon) { |account| full_asset_url(account.avatar.url(:original)) }
|
||||||
|
node(:image) { |account| full_asset_url(account.header.url(:original)) }
|
1
app/views/activitypub/base.activitystreams2.rabl
Normal file
1
app/views/activitypub/base.activitystreams2.rabl
Normal file
|
@ -0,0 +1 @@
|
||||||
|
node(:'@context') { 'https://www.w3.org/ns/activitystreams' }
|
3
app/views/activitypub/intransient.activitystreams2.rabl
Normal file
3
app/views/activitypub/intransient.activitystreams2.rabl
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
extends 'activitypub/base.activitystreams2.rabl'
|
||||||
|
|
||||||
|
node(:id) { request.original_url }
|
3
app/views/activitypub/types/person.activitystreams2.rabl
Normal file
3
app/views/activitypub/types/person.activitystreams2.rabl
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
extends 'activitypub/intransient.activitystreams2.rabl'
|
||||||
|
|
||||||
|
node(:type) { 'Person' }
|
|
@ -1,4 +1,5 @@
|
||||||
# Be sure to restart your server when you modify this file.
|
# Be sure to restart your server when you modify this file.
|
||||||
|
|
||||||
Mime::Type.register "application/json", :json, %w( text/x-json application/jsonrequest application/jrd+json )
|
Mime::Type.register "application/json", :json, %w( text/x-json application/jsonrequest application/jrd+json )
|
||||||
Mime::Type.register "text/xml", :xml, %w( application/xml application/atom+xml application/xrd+xml )
|
Mime::Type.register "text/xml", :xml, %w( application/xml application/atom+xml application/xrd+xml )
|
||||||
|
Mime::Type.register "application/activity+json", :activitystreams2
|
||||||
|
|
|
@ -24,6 +24,16 @@ RSpec.describe AccountsController, type: :controller do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'activitystreams2' do
|
||||||
|
before do
|
||||||
|
get :show, params: { username: alice.username }, format: 'activitystreams2'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns http success with Activity Streams 2.0' do
|
||||||
|
expect(response).to have_http_status(:success)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'html' do
|
context 'html' do
|
||||||
before do
|
before do
|
||||||
get :show, params: { username: alice.username }
|
get :show, params: { username: alice.username }
|
||||||
|
|
Loading…
Reference in a new issue